Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device

ABSTRACT

A system includes a networked device generating a fingerprint of media data rendered thereon, with the networked device having an identification data associated therewith, and a first set of computer implemented instructions executing to generate content identification data from the fingerprint. The system also includes a second set of computer implemented instructions executing to associate the content identification data with the identification data of the networked device, and associate the identification data of the networked device with an identification data of a user of the networked device involved in an interaction with the networked device. The interaction is associated with the rendering of the media data on the networked device.

CLAIM OF PRIORITY

This patent application is a Continuation Application of, and herebyincorporates the entirety of the disclosures of, and claims priority to,each of the following cases:

-   -   (1) U.S. Continuation patent application Ser. No. 16/435,570        titled RELEVANCY IMPROVEMENT THROUGH TARGETING OF INFORMATION        BASED ON DATA GATHERED FROM A NETWORKED DEVICE ASSOCIATED WITH A        SECURITY SANDBOX OF A CLIENT DEVICE filed on Jun. 10, 2019,    -   (2) U.S. Continuation patent application Ser. No. 16/200,683        titled RELEVANCY IMPROVEMENT THROUGH TARGETING OF INFORMATION        BASED ON DATA GATHERED FROM A NETWORKED DEVICE ASSOCIATED WITH A        SECURITY SANDBOX OF A CLIENT DEVICE filed on Nov. 27, 2018,    -   (3) U.S. Continuation patent application Ser. No. 15/829,849        titled RELEVANCY IMPROVEMENT THROUGH TARGETING OF INFORMATION        BASED ON DATA GATHERED FROM A NETWORKED DEVICE ASSOCIATED WITH A        SECURITY SANDBOX OF A CLIENT DEVICE filed on Dec. 1, 2017 and        issued as U.S. Pat. No. 10,142,377,    -   (4) U.S. Provisional Patent Application No. 62/183,756 titled        SECOND SCREEN NETWORKING, TARGETING, AND COMMUNICATION        METHODOLOGIES AND SYSTEMS filed on Jun. 24, 2015,    -   (5) U.S. Continuation patent application Ser. No. 15/217,978        titled RELEVANCY IMPROVEMENT THROUGH TARGETING OF INFORMATION        BASED ON DATA GATHERED FROM A NETWORKED DEVICE ASSOCIATED WITH A        SECURITY SANDBOX OF A CLIENT DEVICE filed on Jul. 23, 2016 and        issued as U.S. Pat. No. 9,866,925,    -   (6) U.S. Continuation patent application Ser. No. 14/018,408        titled EXPOSURE OF PUBLIC INTERNET PROTOCOL ADDRESSES IN AN        ADVERTISING EXCHANGE SERVER TO IMPROVE RELEVANCY OF        ADVERTISEMENTS filed on Sep. 4, 2013 and issued as U.S. Pat. No.        9,589,456,        -   a. which further claims priority to U.S. Provisional Patent            Application No. 61/696,711 titled SYSTEMS AND METHODS OF            RECOGNIZING CONTENT filed on Sep. 4, 2012, and        -   b. which further claims priority to U.S. Provisional Patent            Application No. 61/803,754 titled APPLICATIONS OF ZEROCONF            BIDIRECTIONAL COMMUNICATIONS BETWEEN A NETWORKED DEVICE AND            A SECURITY SANDBOX COMPRISING TARGETED ADVERTISEMENT,            ENVIRONMENT AWARENESS, USER MAPPING, GEOLOCATION SERVICES,            AND CONTENT IDENTIFICATION filed on Mar. 20, 2013, and    -   (7) U.S. Continuation patent application Ser. No. 14/981,928        titled RELEVANCY IMPROVEMENT THROUGH TARGETING OF INFORMATION        BASED ON DATA GATHERED FROM A NETWORKED DEVICE ASSOCIATED WITH A        SECURITY SANDBOX OF A CLIENT DEVICE filed on Dec. 29, 2015 and        issued as U.S. Pat. No. 9,386,356,        -   a. which is a Continuation-in-Part patent application of            U.S. patent application Ser. No. 14/274,800 titled            MONETIZATION OF TELEVISION AUDIENCE DATA ACROSS MULTIPLE            SREENS OF A USER WATCHING TELEVISION filed on May 12, 2014            and issued as U.S. Pat. No. 9,258,383,            -   i. which itself is a Continuation patent application of                U.S. patent application Ser. No. 13/943,866 titled                RELEVANCY IMPROVEMENT THROUGH TARGETING OF INFORMATION                BASED ON DATA GATHERED FROM A NETWORKED DEVICE                ASSOCIATED WITH A SECURITY SANDBOX OF A CLIENT DEVICE                filed on Jul. 17, 2013 and issued as U.S. Pat. No.                8,819,255,                -   1. which further is a Continuation patent                    application of U.S. patent application Ser. No.                    13/904,015 titled REAL-TIME AND RETARGETED                    ADVERTISING ON MULTIPLE SCREENS OF A USER WATCHING                    TELEVISION filed on May 28, 2013 and issued as U.S.                    Pat. No. 9,026,668,                -    a. which further claims priority to U.S.                    Provisional patent application 61/652,153 titled                    CONTENT RECOGNITION SYSTEM filed on May 26, 2012,                -   2. which further is a Continuation patent                    application of U.S. patent application Ser. No.                    13/736,031 titled ZERO CONFIGURATION COMMUNICATION                    BETWEEN A BROWSER AND A NETWORKED MEDIA DEVICE filed                    on Jan. 7, 2013 and issued as U.S. Pat. No.                    9,154,942,                -    a. which further claims priority to U.S.                    Provisional Patent Application No. 61/584,168 titled                    CAPTURING CONTENT FOR DISPLAY ON A TELEVISION filed                    on Jan. 6, 2012,                -   3. which further is a Continuation patent                    application of U.S. patent application Ser. No.                    13/470,814 titled GENERATION OF A TARGETED                    ADVERTISEMENT IN AN UNTRUSTED SANDBOX BASED ON A                    PSUEDONYM filed on May 14, 2012 and issued as U.S.                    Pat. No. 8,539,072,                -    a. which itself is a Continuation patent                    application of U.S. patent application Ser. No.                    12/592,377 titled DISCOVERY, ACCESS CONTROL, AND                    COMMUNICATION WITH NETWORKED SERVICES FROM WITHIN A                    SECURITY SANDBOX, filed on Nov. 23, 2009 and issued                    as U.S. Pat. No. 8,180,891,                -    i. which claims priority to U.S. Provisional Patent                    Application No. 61/118,286 titled DISCOVERY, ACCESS                    CONTROL, AND COMMUNICATION WITH NETWORKED SERVICES                    FROM WITHIN A SECURITY SANDBOX filed on Nov. 26,                    2008.

FIELD OF TECHNOLOGY

This disclosure relates generally to the technical field of networking,data recognition systems, and data recommendation systems. Moreparticularly, this disclosure relates to a method, a non-transitorymedium, and a system of relevancy improvement through targeting ofinformation based on data gathered from a networked device associatedwith a security sandbox of a client device in one example embodiment.

BACKGROUND

A networked device (e.g., a television, a set-top box, a computer, amultimedia display, an audio device, a weather measurement device, ageolocation device) may have access to an information associated with auser. For example, the information may comprise an identification of amovie viewed by the user, a weather information, a geolocationinformation, and/or a behavioral characteristic of the user when theuser interacts with the networked device. However, the user may need toconfigure the networked device to share the information with an othernetworked device. For example, the user may need to read a manual tounderstand a configuration protocol. The user may be unable tounderstand the configuration protocol. As such, the user may spend asignificant amount of customer support time in configuring the networkeddevice. Alternatively, the user may need to expend a significant amountof financial resources for a network administrator to assist the user inconfiguring the networked device. As a result, the user may give up andremain unable to configure the networked device to share the informationwith the other networked device.

Furthermore, the networked device may present to the user an informationthat is irrelevant to the user. As a result, the user may get tired,annoyed, and/or bored with the networked device. Additionally, the usermay waste a significant amount of time processing the information thatis irrelevant to the user. Therefore, a revenue opportunity may bemissed, because an interested party (e.g., a content creator, aretailer, a manufacturer, an advertiser) may be unable to access aninterested audience. In addition, the user may be inconvenienced whenthe information on the networked device and the client device remainindependent of each other.

SUMMARY

A method, a non-transitory medium, and a system related to relevancyimprovement through targeting of information based on data gathered froma networked device associated with a security sandbox of a client deviceare disclosed.

In one aspect, a system includes a networked device generating afingerprint of media data rendered thereon, with the networked devicehaving an identification data associated therewith, and a first set ofcomputer implemented instructions executing to generate contentidentification data from the fingerprint. The system also includes asecond set of computer implemented instructions executing to associatethe content identification data with the identification data of thenetworked device and to associate the identification data of thenetworked device with an identification data of a user of the networkeddevice involved in an interaction with the networked device. Theinteraction is associated with the rendering of the media data on thenetworked device.

In another aspect, a method includes generating, through a networkeddevice, a fingerprint of media data rendered through the networkeddevice, and generating content identification data from the fingerprint.The method also includes associating the content identification datawith an identification data of the networked device, and associating theidentification data of the networked device with an identification dataof a user of the networked device involved in an interaction with thenetworked device. The interaction is associated with the rendering ofthe media data on the networked device.

In yet another aspect, a non-transitory medium, readable through a dataprocessing device and including instructions embodied therein that areexecutable through the data processing device, is disclosed. Thenon-transitory medium includes instructions to generate, through anetworked device, a fingerprint of media data rendered through thenetworked device, and instructions to generate content identificationdata from the fingerprint. The non-transitory medium also includesinstructions to associate the content identification data with anidentification data of the networked device, and instructions toassociate the identification data of the networked device with anidentification data of a user of the networked device involved in aninteraction with the networked device. The interaction is associatedwith the rendering of the media data on the networked device.

The methods, systems, and/or apparatuses disclosed herein may beimplemented in any means for achieving various aspects, and may beexecuted in a form of machine readable medium embodying a set ofinstructions that, when executed by a machine, causes the machine toperform any of the operations disclosed herein. Other features will beapparent from the accompanying drawing and from the detailed descriptionthat follows.

BRIEF DESCRIPTION OF DRAWINGS

Example embodiments are illustrated by way of example and not limitationin the figures of the accompanying drawings, in which like referencesindicate similar elements and in which:

FIG. 1 is a block diagram depicting a system of automatic bidirectionalcommunication between multiple devices, according to one embodiment.

FIG. 2 is a block diagram depicting a system of bidirectionalcommunication between a relevancy-matching server 200, a client device100, and a networked device 102, according to one embodiment.

FIG. 3 is a block diagram depicting a system of performing a discoverythrough a pairing server 300, according to one embodiment.

FIG. 4 is a block diagram depicting a system of bidirectionalcommunication between the client device 100 and the networked device 102using an extension 404 of a security sandbox 104, according to oneembodiment.

FIG. 5 is a block diagram depicting the client device 100 gathering aprimary data 500 through a sandboxed application 112 and communicatingthe primary data 500 to the relevancy-matching server 200 through animage 502, according to one embodiment.

FIG. 6 is a block diagram depicting the client device 100 gathering theprimary data 500 through an executable code 600 and communicating theprimary data 500 to the relevancy-matching server 200 through theexecutable code 600, according to one embodiment.

FIG. 7 is a block diagram depicting the client device 100 residing on aseparate network from the networked device 102 and gathering the primarydata 500 from an intermediary server 700, according to one embodiment.

FIG. 8 is a block diagram depicting the relevancy-matching server 200communicating a targeted data 800 to the client device 100 and thenetworked device 102, according to one embodiment.

FIG. 9 is a block diagram depicting the relevancy-matching server 200communicating the targeted data 800 to the client device 100 associatedwith a user 902, according to one embodiment.

FIG. 10 is a block diagram of a system including a contentidentification server 1006 configured for automatic bidirectionalcommunication with a number of capture servers 1008A, 1008B, the clientdevice 100, and the networked device 102, according to one embodiment.

FIG. 11 is a block diagram of a system of automatic bidirectionalcommunication between the client device 100 and the networked device 102involving the content identification server 1006 and a plurality ofother networked devices 1400A, 1400B, according to one embodiment.

FIG. 12 is a block diagram of a content identification (CID) service1002 generating a CID data 1200 based on a media data 1004, according toone embodiment.

FIG. 13 is a block diagram of a system of determining an identification1304 of the media data 1004 involving the content identification server1006 communicatively coupled to the number of capture servers 1008A,1008B, according to one embodiment.

FIG. 14 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the content identification server1006 and the plurality of other networked devices 1400A, 1400B,according to one embodiment.

FIG. 15 is a block diagram depicting the content identification server1006 configured to generate an annotated metadata 1504, according to oneembodiment.

FIG. 16 is a block diagram depicting the content identification server1006 configured to generate an identifying metadata 1602, according toone embodiment.

FIG. 17 is a block diagram of a system of determining the identification1304 of the media data 1004 involving a watermark data 1204, accordingto one embodiment.

FIG. 18 is a block diagram of a system of determining the identification1304 of the media data 1004 involving an identifying information 1208,according to one embodiment.

FIG. 19 is a block diagram of a system of determining the identification1304 of the media data 1004 involving a fingerprint data 1202 and another fingerprint data 1906, according to one embodiment.

FIG. 20 is a table 2050 depicting a determination of the identification1304 of the media data 1004 by comparing a fingerprint data sequence2000 to a fingerprint database 1900, according to one embodiment.

FIG. 21 is a table 2150 depicting a determination of a recurringsequence 2102, according to one embodiment.

FIG. 22 is a block diagram of a system of determining the identification1304 of the media data 1004 involving a descriptive metadata 1206 and another watermark data 2200, according to one embodiment.

FIG. 23 is a block diagram of the content identification server 1006gathering the CID data 1200 and a plurality of other CID data 1402,1404, according to one embodiment.

FIG. 24 is a table view of the content identification server 1006gathering a provisional identification 2400 of the media data 1004 and anumber of other provisional identifications 2400 of a number of othermedia data 1108, 1112, according to one embodiment.

FIG. 25 is a table view of the content identification server 1006determining the identification 1304 of the media data 1004 based on aconsensus, according to one embodiment.

FIG. 26 is a block diagram of the content identification server 1006using the identification 1304 of the media data 1004 to identify theother fingerprint data 2602, according to one embodiment.

Other features of the present embodiments will be apparent from theaccompanying drawings and from the detailed description that follows.

DETAILED DESCRIPTION

Example embodiments, as described below, relate to a method, anon-transitory medium and/or a system related to relevancy improvementthrough targeting of information based on data gathered from a networkeddevice associated with a security sandbox of a client device, accordingto one or more embodiments.

FIG. 1 is a block diagram depicting a system of automatic bidirectionalcommunication (e.g., sending and receiving information in bothdirections without prior configuration by a human) between multipledevices, according to one embodiment. FIG. 1 shows a client device 100,a networked device 102, a security sandbox 104, an executableenvironment 106, a processor 108, a memory 110, a sandboxed application112, a sandbox-reachable service 114, a communication session 116, across-site scripting technique 118, an appended header 120, a sameorigin policy exception 122, and an other mode 124. The client device100 communicates bidirectionally with the networked device 102 of FIG.1.

According to one embodiment, the client device 100 may be a computer, asmartphone, and/or an other hardware that may be configured to initiatecontact with a server to make use of a resource. The client device 100may constrain the executable environment 106 in the security sandbox104. The client device 100 may also execute the sandboxed application112 in the executable environment 106 using the processor 108 and thememory 110. Further, the client device 100 may automatically establishthe communication session 116 between the sandboxed application 112 andthe sandbox-reachable service 114 of the networked device 102. Thecommunication session 116 may be established between the sandboxedapplication 112 and the sandbox-reachable service 114 through thecross-site scripting technique 118, the appended header 120, the sameorigin policy exception 122, and/or the other mode 124 of bypassing anumber of (e.g., at least one) access controls of the security sandbox104.

According to one embodiment, the networked device 102 may be ageolocation device, a hygrometer, a thermometer, a barometer, ananemometer, a television, an audio device, a game console, a set topbox, an other computer, and/or an other hardware connected by a numberof communications channels that allow sharing of a number of resourcesand/or a number of information. The networked device 102 may perform anumber of sandbox-reachable services (e.g., a geolocation service, ahygrometer service, a thermometer service, an anemometer service, abarometer service, a content identification service 1002, a Media AccessControl address service, a private Internet Protocol address service)using a processor and a memory. Thus, the networked device 102 maygenerate a primary data 500 and/or a preliminary data 702. The primarydata 500 and/or the preliminary data 702 may be associated with a user902.

The networked device 102 may also be configured to automaticallyannounce the sandbox-reachable service 114 of the networked device 102to a discovery module 302 prior to an establishment of the communicationsession 116 between the sandboxed application 112 and thesandbox-reachable service 114. A service agent module of the networkeddevice 102 may coordinate a number of communications with the discoverymodule 302 by listening on a socket, acting as a means for a number ofservices on the networked device 102 to discover each other, and/orannouncing on behalf of the number of services. An announcement mayidentify the sandbox-reachable service 114 being offered and how toreach the sandbox-reachable service 114 (e.g., by communicating anidentification data 304 of the networked device 102 and/or thesandbox-reachable service 114 of the networked device 102). Thus, theclient device 100 may be configured to automatically process theidentification data 304 of the networked device 102 and/or thesandbox-reachable service 114 of the networked device 102 from thediscovery module 302. The client device 100 may also be configured toautomatically associate with the networked device 102 through thesandboxed application 112 of the client device 100 communicativelycoupled to the sandbox-reachable service 114 based on the identificationdata 304.

For example, the geolocation service may be announced by performing aHTTP POST to a URL http://flingo.tv/fling/announce with a body

{  “service” : “gps”,  “model_id” : “Foo GPS Z5”,  “guid” :“8df5f7271e36cdbc4db4513a9e660817ff0fa94a”,  “description” : “Serviceproviding local GPS coordinates” }The announcement may also contain the primary data 500. Thus, theannouncement may contain the body

{  “service” : “gps”,  “model_id” : “Foo GPS Z5”,  “guid” :“8df5f7271e36cdbc4db4513a9e660817ff0fa94a”,  “description” : “Serviceproviding local GPS coordinates”,  “latitude” : 43.60336,  “longitude” :−110.7362 }Alternatively, the primary data 500 may be separated from a servicedescription such that the URL specifies the service description whilethe body specifies the primary data 500 provided by the service. Forexample,

-   -   http://flingo.tv/fling/announce?service=gps&model_id=Foo+GPS+Z5        &guid=8df5f727        1e36cdbc4db4513a9e660817ff0fa94a&description=Service+providing+local+GPS+co        ordinates        with the body

{  “latitude” : 43.60336,  “longitude” : −110.7362 }The primary data 500 may take an XML format, a JSON format, a binaryformat, and/or an other format. A wireless base station may beinstrumented with a number of networked devices (e.g., a set of sensors)to announce the primary data 500 about an environment.

The networked device 102 may also announce an availability of thesandbox-reachable service 114 across a range of public addresses suchthat the sandboxed application 112 communicates with thesandbox-reachable service 114 in any one of the range of publicaddresses. However, the range of public addresses may be known by apairing server 300 such that the announcement of the availability of thesandbox-reachable service 114 across the range of public addresses isunnecessary. Thus, the sandbox-reachable service 114 may communicate aglobal unique identifier (GUID) 704, an alphanumeric name, and/or aprivate address pair of the sandbox-reachable service 114 to the pairingserver 300. The private address pair may comprise (e.g., include, butnot be limited to) a private Internet Protocol (IP) address and a portnumber associated with the sandbox-reachable service 114.

Further, the networked device 102 may render (e.g., present, transmit ina consumable format, deliver) a media data 1004 to the user 902. Themedia data 1004 may comprise a television program, a movie, a musicalcomposition, a newspaper article, a web page, or an advertisement. Whenthe networked device 102 comprises a media device (e.g., a hardware thatrenders a published information), the networked device 102 may comprisea networked media device, an other networked media device 1106A, 1106B,and/or a heterogeneous (e.g., incompatible with an operating systemand/or the sandboxed application 112 of the client device 100) networkedmedia device.

The content identification (CID) service 1000, 1002 and/or an other CIDservice 1104, 1110 may comprise a provision of a discrete function ofidentifying the content of the media data 1004 and/or an other mediadata 1108, 1112, 1904 within a systems environment. The CID service1000, 1002 and/or the other CID service 1104, 1110 may employ a numberof methods (e.g., a fingerprinting method, a watermarking method, ametadata extraction method) for determining an identification 1304(e.g., a content identification) of the media data 1004. The CID service1000, 1002 and/or the other CID service 1104, 1110 may be a hardware, asoftware, a firmware, and/or an integrated circuit. Thesandbox-reachable service 114 may comprise the CID service 1002 of thenetworked device 102. The CID service 1002 of the networked device 102may also communicate the identification 1304 of the media data 1004 tothe sandboxed application 112 through the communication session 116and/or the announcement.

For example, the networked device 102 offering the CID service 1002 mayannounce http://flingo.tv/fling/announce with the body

{  “service” : “cid”,  “make” : “Whiz Bang”,  “model_id” : WZB1000”, “description” : “Identifies content currently being viewed on the TV.”, “private_ip” : [ “192.168.1.12:8080” ] }The sandboxed application 112 may then discover the number ofsandbox-reachable services. For example, the sandboxed application 112may use the cross-site scripting technique 118 based on a script tag(e.g., using a JSONP technique, using a jQuery® JavaScript library).

<script type=“text/javascript”>   functioncb(x) {    var s =JSON.stringify(x,undefined, 4) ;   document.getElementById(“result”).innerHTML = “<pre>” + s + ”</pre>”;  }   functionjsonp( url, cb ) {    $.ajax( {url : url, dataType :‘jsonp’, success : cb,     error: function ( ) {      alert ( “jsonpfailed for url=” + url ) ;     },    timeout : 5000 } );  }  vardoit =function ( ) {    jsonp ( ‘http://flingo.tv/fling/discover’, cb ) ;  } $ (document).ready (doit) ; </script>Thus, the sandboxed application 112 containing a list of a number ofdevices and/or a number of services on a network (e.g., a local areanetwork, a multicast network, an anycast network, a multilan network, aprivate network, and/or an other collection of hardware interconnectedby communication channels that allow sharing of resources andinformation) is created.

{  “count” : 1,  “yourip” : “208.90.215.161”,  “interval” : 900, “devices” : [   {    “model_id” : “WZB 1000”,    “description” : “WhizBang 1000 100\“OLED TV”,    “make” : Whiz Bang Inc.”,    “t” :1325643090,    “services” : [     {      “description” : “Identifiescontent currently being viewed on the TV.”,      “service” : “cid”,     “t” : 1325643090,      “version” :“2011-12-29T22:10:56-cc4dc7b20cle”,      “private_ip” :[“192.168.1.12:8080”],      “name” : “FLINGO Content ID”     },     {     “description” : “Service for playing flung videos.”,      “service”: “flingo”,      “name” : “Fling Queue”,     }    ],    “guid” :“8821877d58ce99ef54aa370419529e2fab40dad2”,   },  ] }A discovery may also be limited to the number of devices providing aparticular service. For example, the discovery may be limited to anumber of CID services 1000, 1002 by queryinghttp://flingo.tv/fling/discover?service=cid

The sandboxed application 112 may then extract the GUID 704 of thenetworked device 102. The sandboxed application 112 may also query thesandbox-reachable service 114 of the networked device 102 (e.g., usingJSONP).

<script>  ...  jsonp(http://flingo.tv/cid/content_id?guid= + guid,id_cb) ;  ...  functionid_cb(id) {   alert( “content_id=”+id.content_id) ;  } </script>

Thus, the sandboxed application 112 may obtain the identification 1304of the media data 1004 from the CID service 1002. Similarly, thesandboxed application 112 may obtain the primary data 500 from thesandbox-reachable service 114 of an intermediary networked device thatcommunicates with a sandbox-unreachable service of the networked device102.

Additionally, the identification 1304 of the media data 1004 may be usedto query for a number of metadata associated with the identification1304 of the media data 1004. For example, the identification 1304“t:22343:959030” may correspond to “The Office” episode titled “BenFranklin.”

$ curl “http://flingo.tv/cid/metadata?content_id=t:22343:959030” {“show_url” : “http://www.tv.com/shows/the-office/”, “show_id” : “22343”,“content_type” : “tv_show”, “show_desc” : “The Office: Based on thepopular British series of the same name, this faster- paced Americanversion follows the daily interactions of a group of ...”, “timestamp” :1313480002.472693, “ep desc” : “Michael celebrates Phyllis’ weddingshower by bringing two performers into the office: a stripper and a BenFranklin impersonator. Meanwhile, Karen confronts Pam about her pasthistory with Jim.”, “ep_url” :“http://www.tv.com/shows/the-office/ben-franklin-959030/”, “ep_id” :“959030”, “guide” : “TV.com”, ... }

The security sandbox 104, the processor 108, and the memory 110 eachexist within the client device 100 of FIG. 1 and communicatebidirectionally with each other. According to one embodiment, thesecurity sandbox 104 may be the operating system on which the sandboxedapplication 112 is hosted, a browser application of the operatingsystem, and/or an other mechanism for separating a number of runningprograms to execute an untested code and/or a number of untrustedprograms from a number of unverified third-parties, a number ofsuppliers, a number of untrusted users, and/or a number of untrustedwebsites.

Each of a number of applications of a web browser and/or a mobile devicemay be constrained inside the security sandbox 104. The security sandbox104 may constrain what each of the number of applications is allowed todo. For example, the security sandbox 104 may limit access to thenetwork, thereby making it difficult for the client device 100 to findthe networked device 102 of the user 902 and/or to obtain informationdirectly from the networked device 102. Such information may includewhat is currently playing on the networked device 102.

The mobile device may also impose the security sandbox 104. The securitysandbox 104 of the mobile device may exist at an operating system level.The operating system of the mobile device may differ from a traditionaloperating system in that the traditional operating system mostly applieda security to the user 902, a number of individual files, and/or anumber of individual directories so that a user application could notcorrupt the traditional operating system. This is different from havinga separate security sandbox for each of the number of applications sothat each of the number of applications cannot access a data of an otherapplication and/or limiting a specific application from having access toa number of operating system services (e.g., a GPS service, a networkservice).

According to one embodiment, the processor 108 may be a centralprocessing unit (CPU), a microprocessor, an integrated circuit such asan application-specific integrated circuit (ASIC), a hardwiredelectronic logic circuit, a discrete element circuit, a programmablelogic device such as a field-programmable gate array (FPGA), and/or another part of a computer system that carries out the instructions of aprogram by performing the arithmetical, logical, and/or input/outputoperations of the system. According to one embodiment, the memory 110may be a random access memory (RAM), a read only memory (ROM), a flashmemory, and/or an other machine-readable storage media.

The executable environment 106 exists within the security sandbox 104 ofFIG. 1. According to one embodiment, the executable environment 106 maybe a virtual machine, a jail, a scripting language interpreter, ascratch space on a disk and/or a memory, and/or an other tightlycontrolled set of resources in which to run a number of guest programs.

The sandboxed application 112 exists within the executable environment106 of FIG. 1. According to one embodiment, the sandboxed application112 and/or an other sandboxed application may be an untested code, anuntrusted program (e.g., from an untrusted web page), and/or an othersoftware that can be executed with an appropriate runtime environment ofthe security sandbox 104.

The sandbox-reachable service 114 exists within the networked device 102of FIG. 1. According to one embodiment, the sandbox-reachable service114 may be a smart television application, a set top box application, anaudio device application, a game console application, a computerapplication, and/or an other service that can be discovered and/orcommunicated with from within the security sandbox 104. Thesandbox-reachable service 114 may comprise the other sandboxedapplication when the sandbox-reachable service 114 is constrained by thesecurity sandbox 104 of a device in which the sandbox-reachable service114 resides.

The communication session 116 exists between the client device 100 andthe networked device 102 of FIG. 1. According to one embodiment, thecommunication session 116 may be an information interchange between twoterminals. The communication session 116 may exist directly between theclient device 100 and the networked device 102. Alternatively, thecommunication session 116 may exist indirectly between the client device100 and the networked device 102 (e.g., through the pairing server 300).

The cross-site scripting technique 118 exists as a component of thecommunication session 116 of FIG. 1. According to one embodiment, thecross-site scripting technique 118 may be a type of a computer securityvulnerability that enables an injection of a client-side script tobypass the number of access controls.

The appended header 120 also exists as a component of the communicationsession 116 of FIG. 1. According to one embodiment, the appended header120 may be a mechanism (e.g., a cross-origin resource sharing) thatallows a cross-domain request by adding a new header (e.g., an originheader, a referrer header).

Additionally, the same origin policy exception 122 exists as a componentof the communication session 116 of FIG. 1. According to one embodiment,the same origin policy exception 122 may be a technique for relaxing arule preventing an access to a number of methods and/or a number ofproperties across a number of pages on a number of different sites. Forexample, a hyperlink, a form, a script 706, a frame, a header, and/or animage 502 may be used to establish the communication session 116.

Further, the other mode 124 exists as a component of the communicationsession 116 of FIG. 1. According to one embodiment, the other mode 124may be a mechanism of bypassing the number of access controls of thesecurity sandbox 104. The other mode 124 may enable the discovery via amulticast-based discovery protocol, a broadcast-based discoveryprotocol, and/or an anycast-based discovery protocol. The other mode 124may also enable a pairing via an entry of a short code and/or an accountname in the client device 100 and/or the networked device 102. Forexample, the other mode 124 may comprise a Facebook® Connect featureand/or an OAuth service.

FIG. 2 depicts a system of bidirectional communication between arelevancy-matching server 200, the client device 100, and the networkeddevice 102, according to one embodiment. FIG. 2 shows the client device100, the networked device 102, the sandboxed application 112, thesandbox-reachable service 114, the communication session 116, therelevancy-matching server 200, a storage 202, and an embedded object204.

The relevancy-matching server 200 exists in the cloud 712 and iscommunicatively coupled to the storage 202, the client device 100, andthe networked device 102 of FIG. 2. According to one embodiment, therelevancy-matching server 200 may be a computer hardware systemdedicated to matching, using a processor and a memory, a targeted data800 with the primary data 500 based on a relevancy factor associatedwith the user 902. The relevancy factor may comprise a category of theprimary data 500, a behavioral history of the user 902, a category ofthe sandboxed application 112, and/or an other information associatedwith the user 902. The relevancy-matching server 200 may comprise acomputer, a plurality (e.g., at least two) of computers, and/or apeer-to-peer network of computers. The relevancy-matching server 200 maybe the pairing server 300 and/or an intermediary server 700. Therelevancy-matching server 200 may also be configured to render thetargeted data 800 to the user 902 through the networked device 102and/or the sandboxed application 112 of the client device 100.

The storage 202 also exists in the cloud 712 and is communicativelycoupled to the relevancy-matching server 200 of FIG. 2. According to oneembodiment, the storage 200 may be a technology comprising a number ofcomputer components and/or a recording media used to retain a digitaldata. The storage 200 may be a volatile memory, a non-volatile memory, adisk, and/or an other repository of the targeted data 800. The storage200 may exist within the relevancy-matching server 200. Alternatively,the storage 200 may be external to the relevancy-matching server 200.The storage 200 may also reside on a different network from therelevancy-matching server 200. The relevancy-matching server 200 maymatch the targeted data 800 with the primary data 500 by searching thestorage 200 for a matching item and/or a related item based on therelevancy factor.

The embedded object 204 exists within the sandboxed application 112 ofFIG. 2. According to one embodiment, the embedded object 204 may be thescript 706, the image 502, a player, an iframe, and/or an other externalmedia included in the sandboxed application 112. The sandboxedapplication 112 of the client device 100 may process the embedded object204 from the relevancy-matching server 200 (e.g., by pulling in theembedded object 204 from the relevancy-matching server 200). The clientdevice 100 may also gather the primary data 500 through the embeddedobject 204 and/or the sandboxed application 112. When the embeddedobject 204 comprises a statically rendered object (e.g., the image 502),the sandboxed application 112 may be configured to gather the primarydata 500 from the networked device 102 through the communication session116. When the embedded object 204 comprises an executable code 600(e.g., the script 706, the player, the iframe), the executable code 600may be configured to gather the primary data 500 from the networkeddevice 102 through the communication session 116 (e.g., by discoveringand querying a number of reachable devices for the primary data 500).

For example, the user 902 may visit example.com and download a web pageindex.html from example.com. The index.html web page may pull in thescript 706 <SCRIPT>*s* from the relevancy-matching server 200example_ads.com. The script 706 may use an extension 404 and/or thepairing server 300 to discover and query the networked device 102 forthe primary data 500. If the primary data 500 comprises theidentification 1304 of the media data 1004, the script 706 may pull in aJavaScript code that uses a XMLHttpRequest to perform a HTTP GET requestto an URL http://flingo.tv/fling/discover?service=cid

A discovery service (e.g., detects the number of devices and/or thenumber of services on the network) may return a list of the number ofdevices in the network of the user 902 that offer the CID service 1000,1002. If one of the number of devices has the GUID 704“f51eba3ab7c3410379e9dcfeb58bb3d3878a2978”, the script 706 may query forthe identification 1304 of the media data 1004 usinghttp://flingo.tv/cid/content_id?guid=f51eba3ab7c3410379e9dcfeb58bb3d3878a2978A state for the networked device 102 with the GUID 704 may be maintainedinside a content identification server 1006 (e.g., a computer hardwaresystem dedicated to identifying a content of the media data 1004 and/orthe other media data 1108, 1112, 1904 using a processor and a memory).In response, the content identification server 1006 may return

{  “count” : 253,  “rel_ts” : 262604,  “content_id” : “SH006197570000”, “ts” : 1344045862604,  “notifications” : [ ] }

The client device 100 may communicate the primary data 500 to therelevancy-matching server 200 through the embedded object 204. When therelevancy-matching server 200 has the primary data 500, therelevancy-matching server 200 may use the primary data 500 to select thetargeted data 800 to render to the user 902. The relevancy-matchingserver 200 may synchronize the targeted data 800 on the client device100 to the primary data 500 on the networked device 102.

For example, a web page starting from zero knowledge may query thenetworked device 102 offering the sandbox-reachable service 114 to learnthe temperature and/or the humidity in the locale of the user. The webpage may then be automatically modified accordingly.

FIG. 3 depicts a system of performing the discovery through the pairingserver 300, according to one embodiment. FIG. 3 shows the client device100, the networked device 102, the sandboxed application 112, thesandbox-reachable service 114, the pairing server 300, the discoverymodule 302, and the identification data 304.

The pairing server 300 exists in the cloud 712 and is communicativelycoupled to the client device 100 and the networked media device 102 ofFIG. 3. According to one embodiment, the pairing server 300 may be acomputer hardware system dedicated to enabling, using a processor and amemory, the communication session 116 between the sandboxed application112 and the sandbox-reachable service 114. The pairing server 300 maycomprise a computer, a plurality of computers, and/or a peer-to-peernetwork of computers. The pairing server 300 may also be therelevancy-matching server 200 and/or the intermediary server 700.

The client device 100 may be configured to process the identificationdata 304 of the networked device 102 and/or the sandbox-reachableservice 114 of the networked device 102 in a manner such that the clientdevice 100 is configured to access the discovery module 302 of thepairing server 300. The pairing server 300 may be configured to receivein the announcement from the networked device 102 and to communicate tothe client device 100 the identification data 304 when a shared networkis determined to be commonly associated with the client device 100 andthe networked device 102.

The pairing server 300 may also provide a relay service (e.g., transmitsa data between two terminals that are incapable of communicatingdirectly) between the client device 100 and the networked device 102. AWebSocket (e.g., a web technology providing a number of full-duplexcommunications channels over a single Transmission Control Protocolconnection) and/or a long-polling message query interface may be used toreduce a latency of a message delivery in a manner such that a pollingperiod between a number of consecutive pollings may be less than atimeout period of a session through the relay service. However, when thepairing server 300 communicates the hardware address of the networkeddevice 102 (e.g., a MAC address) and/or the private address pair of thesandbox-reachable service 114 to the client device 100, the clientdevice 100 may communicate directly with the networked device 102 (i.e.bypassing the relay service of the pairing server 300).

The discovery module 302 exists within the pairing server 300 of FIG. 3.According to one embodiment, the discovery module 302 may be aself-contained component that performs the discovery service. Thediscovery module 302 may also be a software, a hardware, a firmware,and/or an integrated circuit. The client device 100 may access thediscovery module 302 of the pairing server 300 to perform the discovery.

The identification data 304 exists between the pairing server 300 andthe client device 100 as well as between the pairing server 300 and thenetworked device 102 of FIG. 3. According to one embodiment, theidentification data 304 may comprise a geolocation, the GUID 704, thealphanumeric name, the hardware address associated with the networkeddevice 102, a public address pair (e.g., a public Internet Protocoladdress and a port number) associated with the sandbox-reachable service114 of the networked device 102, and/or the private address pairassociated with the sandbox-reachable service 114 of the networkeddevice 102. The identification data 304 may enable the communicationsession 116 between the client device 100 and the networked device 102when the client device 100 and the networked device 102 no longer resideon the shared network.

FIG. 4 is a block diagram depicting a system of bidirectionalcommunication between the client device 100 and the networked device 102using the extension 404 of the security sandbox 104, according to oneembodiment. FIG. 4 shows the client device 100, the networked device102, the sandboxed application 112, the sandbox-reachable service 114,the discovery module 302, the identification data 304, a discoveryalgorithm 400, a relay module 402, and the extension 404.

The discovery algorithm 400 exists within the discovery module 302 ofFIG. 4. According to one embodiment, the discovery algorithm 400 may bea procedure for detecting the number of devices and/or the number ofservices on the network. The discovery algorithm 400 may utilize aprotocol comprising a Bonjour® protocol, a Simple Service DiscoveryProtocol (SSDP) protocol, a local service discovery (LSD) uTorrent®protocol, a multicast protocol, an anycast protocol, and/or a local areanetwork (LAN)-based protocol that discovers a number of services in aLAN 708 based on a broadcast from any one of an operating systemservice, the security sandbox 104, the client device 100, thesandbox-reachable service 114, and the networked device 102.

The relay module 402 exists within the extension 404 and communicateswith the sandboxed application 112, the discovery module 302, and thesandbox-reachable service 114 of FIG. 4. According to one embodiment,the relay module 402 may be a self-contained component that performs therelay service. The relay module 402 may also be a software, a hardware,a firmware, and/or an integrated circuit.

The extension 404 of the security sandbox 104 exists within the clientdevice 100 of FIG. 4. According to one embodiment, the extension 404 maybe a program adding a number of capabilities of the discovery module 302and/or the relay module 402 to the sandboxed application 112. Theextension 404 may be a plugin, an add-on, and/or an addition to a corefunctionality (e.g., a modification of a core code and/or a runtime) ofthe sandboxed application 112. The client device 100 may extend thesecurity sandbox 104 with the discovery module 302 and the relay module402 added to the security sandbox 104. The sandboxed application 112 ofthe client device 100 may use the extension 404 to process theidentification data 304 of the networked device 102 and/or thesandbox-reachable service 114 of the networked device 102.

When the client device 100 pairs with the networked device 102, theautomatic bidirectional communication may comprise the client device 100pushing the media data 1004 to the networked device 102. According toone exemplary embodiment, the sandboxed application 112 of the clientdevice 100 may be a web browser. The user may visit a web page and draga bookmark from the web page to a bookmark bar of the web browser. Thebookmark may comprise a bookmarklet (e.g., the bookmark that contains anumber of JavaScript commands). The bookmarklet may not be constrainedto a same origin policy and may send and/or receive a number of resultsusing a XmlHttpRequest exchanged directly with the discovery serviceand/or the relay service.

A bookmarklet remote procedure call (RPC) may communicate a privatebroadcast to the number of services in the network. Alternatively, thebookmarklet RPC may send a discovery request to the discovery service tofind the number of services in the network and then communicate via therelay service with the number of services in the network. If thediscovery service and/or the relay service returns a number of privateaddress pairs, the bookmarklet may use the XmlHttpRequest to directlycommunicate with the number of devices in the network and/or perform anumber of RPC calls.

The bookmarklet may forward a property (e.g., a window.location.hrefproperty) that returns the URL of the web page to the discovery serviceand/or the relay service. A new web page may be opened to request thatthe user confirm an intent to push the media data 1004 to the networkeddevice 102. A form may be presented to request that the user select thenetworked device 102 to receive the media data 1004. The discoveryservice and/or the relay service may discover a number of networkedmedia devices sharing a local network based on an IP address of theclient device 100.

A device (e.g., the pairing server 300, the client device 100, a server)in which the discovery service and/or the relay service exists and/or another device (e.g., an other server) to which the discovery serviceand/or the relay service communicates the URL of the web page mayextract a raw URL. The device and/or the other device may also use afragile code to extract a metadata from the web page. For example,http://www.youtube.com/watch?v=FMRg11hQLds corresponds to a YouTube® webpage with an embedded video. The YouTube® web page contains threemetadata tags. A thumbnail for each video may also be obtained bypulling a video identifier out of the URL usinghttp://i3.ytimg.com/vi/FMRgllhQLds/default.jpg and/orhttp://i3.ytimg.com/vi/FMRgllhQLds/hqdefault.jpg. A number in “i3” maybe changeable between “i1” and “i4” while returning a same image. Thenumber of results comprising the raw URL, the metadata, and/or thethumbnail may be communicated to the number of networked media devicessharing the local network.

The bookmarklet RPC may be used to retrieve the number of results fromthe device and/or the other device. The number of results may bedisplayed in an alert and/or passed to a Document Object Model of theweb page (e.g., if an error occurs). The bookmarklet RPC may also beused to obtain an information from the networked device 102. Thebookmarklet may then pass the information on to a third-party website.For example, the bookmarklet may send the XmlHttpRequest to thenetworked device 102 discovered by the discovery service of the pairingserver 300. The bookmarklet may query for the identification 1304 of themedia data 1004 currently being rendered by the networked device 102.The bookmarklet may then pass the identification 1304 as a number ofquery-value parameters to a metadata association server (e.g., an IMDb®database) to obtain the number of metadata about the media data 1004presently being rendered by the networked device 102.

In another embodiment, the automatic bidirectional communication mayalso comprise the client device 100 communicating an object (e.g., adata upon which an operation is performed) of a function (e.g., open aweb page, play a video, play a musical composition, display a video gamegraphic) of the sandboxed application 112 and/or a request (e.g., alongpoll HTTP request, a command to play a song) to perform the functionof the sandboxed application 112 to the heterogeneous networked mediadevice. The sandboxed application 112 of the client device 100 mayestablish the communication session 116 with the sandbox-reachableservice 114 of the heterogeneous networked media device using thepairing server 300, the extension 404, and/or the remote access token.The sandbox-reachable service 114 of the heterogeneous networked mediadevice may comprise a sandboxed application function service (e.g., aweb page opener service, a video playing service, a music playingservice, a video game playing service). For example, the user 902 maypick up an iPhone® and open an App that plays music. When the user 902gets home, the music stops playing on an iPhone® and immediately startsplaying on a Bose® audio system. However, the user 902 retains thevolume and playback controls for the music on the iPhone®.

The sandboxed application 112 may be configured to communicate with theother sandboxed application in a manner such that the client device 100may be configured to offer the sandboxed application 112 assandbox-reachable service to the other sandboxed application and/orforward a number of communications to the other sandboxed applicationthrough the relay service. The other sandboxed application may comprisethe sandboxed application function service of the heterogeneousnetworked media device. For example, a web page may communicate with another web page in the same manner in which the webpage communicated withthe sandbox-reachable service 114 through the communication session 116(e.g., the webpage may forward the request to the relay service, and theother web page may long poll the relay service for the request).

The sandboxed application function service may be configured tocommunicate with the sandboxed application 112 of the client device 100in a manner such that the sandboxed application function service may beconfigured to incorporate a first executable code (e.g., a callbackcomprising an argument in a query string) into an invocation procedureof the sandboxed application function service, generate a secondexecutable code (e.g., a return result that calls the callback with thereturn result), and execute the first executable code with the secondexecutable code. According to one embodiment, the invocation proceduremay a sandbox-reachable (e.g., using JSONP) service call. For example,the invocation procedure may be a remote procedure call (RPC).

The client device 100 may be configured to retain a number of controloperations (e.g., a playback operation, a rewind operation, a navigationoperation) of the sandboxed application 112 when the heterogeneousnetworked media device is configured to perform the function of thesandboxed application 112. For example, a video game may be displayed onthe heterogeneous networked media device while the client device 100 maybe used to play the video game.

The relay service may be configured to forward the request to performthe function of the sandboxed application 112 from the client device 100to the heterogeneous networked media device. The heterogeneous networkedmedia device may be configured to constantly listen for the requestthrough a connection application comprising a polling application, astreaming application, a WebSocket application, and/or a long-pollingapplication. The long-polling application may be configured to optimizea polling period between a long-polling and a consecutive long-pollingin a manner such that the polling period is less than a timeout periodof the long-polling.

For example, the sandboxed application function service may always berunning. The sandboxed application function service may communicate amessage query (e.g, an initiation of a process of retrieving anasynchronous communication) to the relay service by HTTP long-pollingthe relay service and/or a device providing the relay service. Byoptimizing the polling period such that the polling period is less thanthe timeout period of the session of the relay service, theheterogeneous networked media device may constantly listen for therequest. If an “open” message arrives as the body to the longpoll HTTPrequest, the heterogeneous networked media device may open a fullscreenwindow containing the web page.

In another exemplary embodiment, the heterogeneous networked mediadevice may be configured to run a sandboxed application server (e.g., acomputer hardware and/or a computer software dedicated to providing adata to the sandboxed application 112, the other sandboxed application,and/or the sandboxed application function service). For example, thesandboxed application server may comprise a web server. The sandboxedapplication server may comprise a computer, a plurality of computers,and/or a peer-to-peer network of computers. The sandboxed applicationserver may also be the sandboxed application function service, theheterogeneous networked media device, the pairing server, and/or thetrusted intermediary server. Further, the sandboxed application server700 may be a firmware and/or an integrated circuit.

The sandboxed application server may be configured to provide thesandboxed application function service. The sandboxed applicationfunction service may also be configured to process the object of thefunction of the sandboxed application 112 from the client device 100 andto perform the function of the sandboxed application 112 through thesandboxed application server.

For example, the object may comprise a URI of a web page. The user 902may navigate to a web page *w* using the client device 100. The web page*w* may discover the heterogeneous networked media device andcommunicate an intent of the user 902 to open a web page *v*. Theheterogeneous networked media device may run the sandboxed applicationserver (e.g., the web server) that offers the sandboxed applicationfunction service. The sandboxed application function service may providethe invocation procedure at a URL “http://x:y/open” where x refers to anIP address and/or a domain name of the heterogeneous networked mediadevice and y is a port that provides the sandboxed application functionservice.

The sandboxed application 112 may communicate the object (e.g., POST aURL *u* to http://x:y/open) causing the sandboxed application server toopen the web page *v* pointing at the URL *u*. The sandboxed application112 may communicate with the invocation procedure using the firstexecutable code comprising the argument in the query string ofhttp://x:y/open. The return result may be the second executable code(e.g., a JSON script) that calls the first executable code.

The sandboxed application 112 may communicate the URI of the webpage tothe sandboxed application server that offers the sandboxed applicationfunction service. The sandboxed application server may then open abrowser window pointing at the URI of the web page.

A trusted intermediary (e.g., a computer hardware and/or a computersoftware that enforces and/or prompts the user 902 to set a number ofcommunication policies) may be configured to request an authorization toperform the function of the sandboxed application 112 through theheterogeneous networked media device. The trusted intermediary may alsobe configured to store the authorization in the sandboxed application112 and/or a trusted intermediary server (e.g., a server from which thetrusted intermediary is downloaded). Additionally, the trustedintermediary may be configured to request the authorization through theclient device 100.

For example, the trusted intermediary may be the pairing server 300, aniframe, a browser window, a browser tab, a new web page, etc. When thetrusted intermediary comprises the iframe, the number of communicationpolicies may be enforced from within the client device 100. Thesandboxed application 112 may communicate the object to the sandboxedapplication function service of the heterogeneous networked mediadevice. The sandboxed application server in the heterogeneous networkedmedia device offering the sandboxed application function service mayreturn the trusted intermediary comprising the iframe asking the user902 whether to permit the webpage to open on the heterogeneous networkedmedia device. Thus, the iframe may prompt the user 902 for theauthorization through the sandboxed application 112. The trustedintermediary may store the authorization with the trusted intermediaryin a web browser as a cookie. The authorization may also be stored inthe trusted intermediary server (e.g., the pairing server 300, thesandbox application server).

FIG. 5 is a block diagram depicting the client device 100 gathering theprimary data 500 through the sandboxed application 112 and communicatingthe primary data 500 to the relevancy-matching server 200 through theimage 502, according to one embodiment. FIG. 5 shows the client device100, the networked device 102, the sandboxed application 112, thesandbox-reachable service 114, the relevancy-matching server 200, thestorage 202, the primary data 500, and the image 502.

The primary data 500 exists between the sandbox-reachable service 114and the sandboxed application 112 as well as between the image 502 andthe relevancy-matching server 200 of FIG. 5. According to oneembodiment, the primary data 500 may comprise the identification 1304(e.g., a title, an episode number) of the media data 1004, a number ofdescriptive metadata 1206 (e.g., a face recognition, a voicerecognition, a music recognition, a product recognition, a brand namerecognition) associated with the identification 1304 of the media data1004, a content identification history (e.g., a viewing history, alistening history, a subset of the media data 1004 previously renderedby the networked device 102), a monitored event 802, the geolocation(e.g., a GPS coordinate, a Geo-IP coordinate), a weather information,the Media Access Control (MAC) address of the client device 100, aprivate Internet Protocol (IP) address, and/or an other data stored in avolatile memory and/or a non-volatile memory (e.g., a hard disk drive, asolid state drive, a RAM).

The image 502 exists within the sandboxed application 112 of FIG. 5.According to one embodiment, the image 502 may be a HTML tag thatincorporates a number of in-line graphics into an HTML document. Theembedded object 204 may comprise the image 502. The sandboxedapplication 112 may query the sandbox-reachable service 114 for theprimary data 500. The sandboxed application 112 may also pull in theimage 502 from the relevancy-matching server 200. The image 502 may thenbe used to pass along the primary data 500 to the relevancy-matchingserver 200. Thus, the identification data 304 of the client device 100and/or the networked device 102 may remain unknown to therelevancy-matching server 200.

FIG. 6 is a block diagram depicting the client device 100 gathering theprimary data 500 through the executable code 600 and communicating theprimary data 500 to the relevancy-matching server 200 through theexecutable code 600, according to one embodiment. FIG. 6 shows theclient device 100, the networked device 102, the sandboxed application112, the sandbox-reachable service 114, the relevancy-matching server200, the storage 202, the primary data 500, and the executable code 600.

The executable code 600 exists within the sandboxed application 112 andcommunicates with the sandbox-reachable service 114 and therelevancy-matching server 200 of FIG. 6. According to one embodiment,the executable code 600 may be the script 706, the player, the iframe,and/or an other set of instructions that runs within the client device100. The sandboxed application 112 may pull in the executable code 600from the relevancy-matching server 200. The executable code 600 may beconfigured to gather the primary data 500 from the sandbox-reachableservice 114 and/or the networked device 102. The executable code 600 maythen be used to pass along the primary data 500 to therelevancy-matching server 200. Thus, the identification data 304 of theclient device 100 and/or the networked device 102 may remain unknown tothe relevancy-matching server 200.

FIG. 7 is a block diagram depicting the client device 100 residing on aseparate network from the networked device 102 and gathering the primarydata 500 from the intermediary server 700, according to one embodiment.FIG. 7 shows the client device 100, the networked device 102, thesandboxed application 112, the sandbox-reachable service 114, therelevancy-matching server 200, the storage 202, the primary data 500,the intermediary server 700, the preliminary data 702, the GUID 704, thescript 706, the LAN 708, a cellular network 710, and the cloud 712.

The intermediary server 700 exists within the cloud 712 and iscommunicatively coupled to the client device 100 and the networkeddevice 102 of FIG. 7. According to one embodiment, the intermediaryserver 700 may be a computer hardware system dedicated to generating theprimary data 500 based on the preliminary data 702 using a processor anda memory. The intermediary server 700 may comprise a computer, aplurality of computers, and/or a peer-to-peer network of computers. Theintermediary server 700 may also be the pairing server 300 and/or therelevancy-matching server 200. The intermediary server 700 may beconfigured to process the preliminary data 702 from the networked device102 and/or the client device 100 and to generate the primary data 500based on the preliminary data 702. The intermediary server 700 may alsobe configured to communicate the primary data 500 to any of a number ofdevices with the access to the identification data 304 of the networkeddevice 102 and/or the sandbox-reachable service 114 of the networkeddevice 102 (e.g., via a remote access token).

For example, the intermediary server 700 may be the contentidentification server 1006. The intermediary server 700 may process thepreliminary data 702 comprising a watermark data 1204 extracted by theCID service 1002 of the networked device 102. The intermediary server700 may compare the watermark data 1204 to a watermark database 1700 todetermine the identification 1304 of the media data 1004 associated withthe watermark data 1204. Thus, the intermediary server 700 may generatethe primary data 500 comprising the identification 1304 of the mediadata 1004 based on the watermark data 1204.

The intermediary server 700 may then communicate the primary data 500 tothe client device 100 if the client device 100 knows the identificationdata 304 of the networked device 102 and/or the sandbox-reachableservice 114 comprising the CID service 1002. For example, the clientdevice 100 may have obtained the GUID 704 of the networked device 102from the discovery module 302 of the pairing server 300 when the clientdevice 100 and the networked device 102 previously resided on the sharednetwork. The client device 100 may have stored the GUID 704 in theremote access token (e.g., a cookie). Thus, the client device 100 mayquery the intermediary server 700 for the identification 1304 of themedia data 1004 using the GUID 704 of the networked device 102. Theintermediary server 700 may act as a trusted intermediary to enforce apolicy regarding which of the number of devices may access the primarydata 500 of the networked device 102.

The preliminary data 702 exists between the networked device 102 and theintermediary server 700 of FIG. 7. According to one embodiment, thepreliminary data 702 may be an information associated with the user 902that is generated by the networked device 102. The preliminary data 702may be identical to the primary data 500 (e.g., a content identifyingmetadata extracted by the networked device 102). Alternatively, thepreliminary data 702 may need to be converted into the primary data 500to be usable by the relevancy-matching server 200 (e.g., a digitalfingerprint generated by the networked device 102 that must be comparedto a fingerprint database 1900 by the intermediary server 700 togenerate the identification 1304 of the media data 1004). Thepreliminary data 702 may comprise a CID data 1200, 1300 automaticallygenerated by the CID service 1000, 1002 based on the media data 1004.The preliminary data 702 may also comprise a timestamp of the CID data1200, 1300 and/or a device identifier (e.g., a model identifier, a GUID,a Media Access Control address, an Internet Protocol address). Thetimestamp may be automatically generated by the CID service 1000, 1002.The timestamp may exist within the content of the media data 1004.

The GUID 704 exists between the client device 100 and the intermediaryserver 700 of FIG. 7. According to one embodiment, the GUID 704 may be areference number used to uniquely identify a location of a data object.The GUID 704 of the networked device 102 and/or the sandbox-reachableservice 114 may be used by the client device 100 to access the primarydata 500 generated by the intermediary server 700. The identificationdata 304 may comprise the GUID 704. The identification data 304 may alsocomprise the geolocation of the networked device 102. The client device100 may also store the geolocation in the remote access token. Thegeolocation may be used to authenticate the communication session 116between the client device 100 and the networked device 102 (e.g., byconfirming that the client device 100 and the networked device 102currently and/or previously shared the geolocation of the networkeddevice 102). The geolocation may also be used by the client device 100to obtain the primary data 500 of the networked device 102 through theintermediary server 700.

The script 706 exists within the sandboxed application 112 of FIG. 7.According to one embodiment, the script 706 may be a program written fora software environment that automates an execution of a number of tasks.The embedded object 204 and/or the executable code 600 may comprise thescript 706. The script 706 may gather the primary data 500 from theintermediary server 700 and communicate the primary data 500 to therelevancy-matching server 200.

The LAN 708 is associated with the networked device 102 of FIG. 7.According to one embodiment, the LAN 708 may be a collection of a numberof links and a number of nodes that interconnects a number of devices ina limited area.

The cellular network 710 is associated with the client device 100 ofFIG. 7. According to one embodiment, the cellular network 710 may be aradio network distributed over a number of land areas served by afixed-location transceiver. The client device 100 on the cellularnetwork 710 may obtain the primary data 500 of the networked device 102on the LAN 708 through the intermediary server 700.

The cloud 712 is associated with the intermediary server 700, therelevancy-matching server 200, and the storage 202 of FIG. 7. Accordingto one embodiment, the cloud 712 may be a remote location accessibleover the Internet that makes available a number of computing resources.The intermediary server 700, the relevancy-matching server 200, and thestorage 202 may each reside in a different remote location.

For example, the identification 1304 of the media data 1004 may becommunicated via the cloud 712. The networked device 102 may communicatethe identification 1304 of the media data 1004 to a server in the cloud712. The server in the cloud 712 may then store and/or forward theidentification 1304 of the media data 1004 to any of the number ofdevices that are paired (e.g., have access to the identification data304) with the networked device 102. A communication of theidentification 1304 of the media data 1004 may occur immediately and/orat a later time (e.g., to retarget a client-device advertisement anumber of hours after the user saw the content associated with theidentification 1304 of the media data 1004). Using the relay service ofthe server in the cloud 712 to relay the identification 1304 of themedia data 1004 may be necessary if the client device 100 cannotestablish a direct connection to the networked device 102 (e.g., whenthe client device 100 is a mobile phone using a wireless 4G data networkwhile the networked device 102 is behind a firewall on a wired ISP).

FIG. 8 is a block diagram depicting the relevancy-matching server 200communicating the targeted data 800 to the client device 100 and thenetworked device 102, according to one embodiment. FIG. 8 shows theclient device 100, the networked device 102, the sandboxed application112, the sandbox-reachable service 114, the relevancy-matching server200, the storage 202, the embedded object 204, the targeted data 800,and the monitored event 802.

The targeted data 800 exists between the relevancy-matching server 200and the client device 100 as well as between the relevancy-matchingserver 200 and the networked device 102 of FIG. 8. According to oneembodiment, the targeted data 800 may comprise a content recommendation,an advertisement, a product recommendation, and/or an other informationrelated to the primary data 500. The targeted data 800 may comprise thematching item and/or the related item in the storage 202. The targeteddata 800 may be communicated to the client device 100 and/or thenetworked device 102.

The monitored event 802 exists between the networked device 102 and theclient device 100 of FIG. 8. According to one embodiment, the monitoredevent 802 may be an interaction between the user 902 and the networkeddevice 102. For example, the targeted data 800 may comprise aninteractive advertisement. The interaction between the user 902 and thenetworked device 102 may become the primary data 500 of the networkeddevice 102. The interaction may then be communicated to the clientdevice 100.

FIG. 9 is a block diagram depicting the relevancy-matching server 200communicating the targeted data 800 to the client device 100 associatedwith the user 902, according to one embodiment. FIG. 9 shows the clientdevice 100, the relevancy-matching server 200, the targeted data 800, aunique identifier 900 of the client device 100, and the user 902.

The unique identifier 900 exists between the client device 100 and therelevancy-matching server 200 of FIG. 9. According to one embodiment,the unique identifier 900 may be a reference information of the clientdevice 100. The unique identifier 900 of the client device 100 may beused as a pseudonym for the user 902.

The networked device 102 may have a better view of the network than thesandboxed application 112. The networked device 102 may see the uniqueidentifier 900 of the client device 100 on a number of packets as thenumber of packets transit within the network. Thus, the networked device102 may generate and/or communicate the unique identifier 900 to thesandboxed application 112.

The unique identifier 900 may also be used to generate a user profile.The targeted data 800 may be initialized by a number of triggerscomprising a number of closed captions, a logo detection, a metadata, aface detection, a voice detection, and/or the monitored event 802. Thetargeted data 800 and/or the primary data 500 may be synchronized acrossa plurality of devices by creating the user profile in a user profileserver. The user profile server may be the pairing server 300, therelevancy-matching server 200, and/or the intermediary server 700. Theuser profile server may create the user profile by aggregating a numberof login information from a number of different services (e.g., aFacebook® service, a Google® service, a Myspace® service, a WindowsLive® service, a Yahoo!® service, an OpenID® service). The user profilemay also comprise a name, an email address, a gender, a birthday, a timezone, a website, a phone number, a profile picture, an address, astatus, a number of interests, a music, a number of movies, a number oftelevision shows, a number of books, a number of friends, a relationshipstatus, and/or an employment information. The user profile may beassociated with the client device 100 using the unique identifier 900 ofthe client device 100. The number of login information may becommunicated to any of the plurality of devices.

The user 902 is associated with the client device 100 of FIG. 9.According to one embodiment, the user 902 may be a human who utilizesthe client device 100. The client device 100 may communicate the uniqueidentifier 900 to the relevancy-matching server 200. The client device100 may be associated with the user 902 based on the unique identifier900 that is unlikely to change. The relevancy-matching server 200 mayidentify the client device 100 using the unique identifier 900. Therelevancy-matching server 200 may also communicate the targeted data 800tailored for the user 902 to the client device 100 with the uniqueidentifier 900 associated with the user 902.

FIG. 10 is a block diagram of a system including the contentidentification server 1006 configured for automatic bidirectionalcommunication with a number of capture servers 1008A, 1008B, the clientdevice 100, and the networked device 102, according to one embodiment.FIG. 10 shows the client device 100, the networked device 102, the CIDservice 1000, 1002, the media data 1004, the content identificationserver 1006, a capture server 1008A, 1008B, and a media transmissionnode 1010A, 1010B.

The CID service 1000 exists in the client device 100, and the CIDservice 1002 exists in the networked device 102 of FIG. 10. The CIDservice 1000, 1002 of the networked device 102, the client device 100,and/or any of the number of devices that currently and/or previouslyshared the network with the networked device 102 (e.g., that have theaccess to the identification data 304) may communicate the preliminarydata 702 to the content identification server 1006.

The CID service 1002 of the networked device 102 may exist at a chipsetlevel of the networked device 102. The CID service 1002 of the networkeddevice 102 may also be integrated into a chipset of the networked device102. Further, the CID service 1002 of the networked device 102 may beintegrated into a video pipeline and/or an audio pipeline. Stillfurther, the CID service 1002 of the networked device 102 may access abuffer (e.g., a frame buffer, a video buffer, an audio buffer).

In one embodiment, the CID service 1000 of the client device 100 and/orthe sandboxed application 112 may process and/or generate the CID data1300 and/or the identification 1304 of the media data 1004 by accessingthe CID service 1002 of the networked device 102 through thecommunication session 116. In another embodiment, the CID service 1000of the client device 100 and/or the sandboxed application 112 mayprocess and/or generate the CID data 1300 and/or the identification 1304of the media data 1004 by using a sandbox-reachable service of anintermediary device to access a sandbox-unreachable CID service of thenetworked device 102. In yet another embodiment, the sandboxedapplication 112 may retrieve the identification 1304 of the media data1004 from the sandbox-reachable service of the intermediary device. Forexample, an audio content identification library on the intermediarydevice may return the identification 1304 of the media data 1004 to thesandboxed application 112.

Alternatively, the CID service 1000 of the client device 100 maygenerate the CID data 1300 by capturing (e.g., processing and/orreplicating at least a portion of) the media data 1004 rendered by thenetworked device 102 (e.g., using the extension 404 to allow thesandboxed application 112 to access the CID service 1000 and/or acapture device of the client device 100, using a loopback interface toallow the sandboxed application 112 to access the CID service 1000and/or a capture device of the client device 100 by testing a number ofports). Thus, the CID service 1000 of the client device 100 may besubject to a greater amount of signal noise than the CID service 1002 ofthe networked device 102. Yet another alternative may entail the CIDservice 1000 generating the CID data 1300 by using the intermediarydevice to capture the media data 1004 (e.g., by establishing acommunication session between the client device 100 and the intermediarydevice to access a sandbox-reachable CID service of the intermediarydevice and/or to access the capture device of the intermediary device).

For example, when the sandbox-reachable service 114 of the networkeddevice 102 comprises the CID service 1002 of the networked device 102,the sandboxed application 112 of the client device 100 may process theCID data 1200 automatically generated by the CID service 1002 of thenetworked device 102 through the communication session 116. Thecommunication session 116 may be established using the discovery serviceand/or the relay service of the pairing server 300, the extension 404,and/or the remote access token.

When the CID service 1002 of the networked device 102 comprises asandbox-unreachable service, the sandboxed application 112 of the clientdevice 100 may process the CID data 1200 through the sandbox-reachableservice of the intermediary device. The sandbox-reachable service of theintermediary device may be configured to utilize a discovery protocolunavailable to the security sandbox 104 of the client device 100 and toprocess the CID data 1200 from the sandbox-unreachable CID service ofthe networked device 102. The client device 100 may establish thecommunication session between the sandboxed application 112 and thesandbox-reachable service of the intermediary device using the discoveryservice and/or the relay service of the pairing server 300, theextension 404, and/or the remote access token.

Alternatively, the sandboxed application 112 of the client device 100may access the capture device (e.g., a camera, a microphone) to capturethe media data 1004 rendered by the networked device 102. The networkeddevice 102 may comprise the media device that is unconnected from thenetwork of the client device 100. The sandboxed application 112 may usethe extension 404 to add the capture device of the client device 100and/or the CID service 1000 of the client device 100 to the securitysandbox 104 of the client device 100. The CID service 1000 may also bemade into the extension 404 so that a number of calls from JavaScriptrunning in the sandboxed application 112 may query the CID service 1000running on the same device as the sandboxed application 112. Further,the sandboxed application 112 of the client device 100 may access thesandbox-reachable CID service and/or the capture device of theintermediary device through the communication session 116 between thesandboxed application 112 and the intermediary device.

The sandboxed application 112 may also use the loopback interface (e.g.,a loopback address, 127.0.0.1, a local host) to access the CID service1000 of the client device 100 and/or the capture device of the clientdevice 100. The sandboxed application 112 may query a number ofwell-known ports for the CID service 1000 of the client device 100and/or the capture device of the client device 100. Alternatively, thesandboxed application 112 may query the number of ports associated witha number of private IP addresses returned from the discovery service.The sandboxed application 112 may associate a port with the CID service1000 of the client device 100 and/or the capture device of the clientdevice 100 by looking for a valid service-specific handshake and/or another valid service-specific query response. The sandboxed application112 may then communicate with the CID service 1000 of the client device100 and/or the capture device of the client device 100 through the port.An available service discovered using the loopback interface may also beadded to a list of network services even if the available service wasnot otherwise announced.

The media data 1004 exists in the networked device 102 of FIG. 10.According to one embodiment, the media data 1004 and/or the other mediadata 1108, 1112, 1904 may be a published information rendered to theuser 902. The media data 1004 may be rendered to the user 902 by thenetworked device 102. The other media data 1108, 1112 may be rendered bya number of other networked media devices 1106A, 1106B. The other mediadata 1904 may be captured by the capture server 1008A, 1008B.

The content identification server 1006 exists in the cloud 712 and iscommunicatively coupled to the client device 100, the networked device102, and the number of capture servers 1008A, 1008B of FIG. 10. Thecontent identification server 1006 may comprise a computer, a pluralityof computers, and/or a peer-to-peer network of computers. The contentidentification server 1006 may also be the relevancy-matching server200, the pairing server 300, and/or the intermediary server 700.

The content identification server 1006 may be configured toautomatically determine the identification 1304 of the media data 1004previously and/or presently being rendered by the networked device 102.The content identification server 1006 may be configured to process thepreliminary data 702 (e.g., the CID data 1200, 1300, the timestamp, thedevice identifier) from the networked device 102, the client device 100,and/or any of the number of devices that currently and/or previouslyshared the network with the networked media device 102. The contentidentification server 1006 may also be configured to process an otherCID data 1302, 1306, 1402, 1404 automatically generated by the other CIDservice 1104, 1110 based on the other media data 1108, 1112, 1904.Further, the content identification server 1006 may be configured toprocess an other timestamp of the other CID data 1302, 1306, 1402, 1404and/or an other device identifier from the other CID service 1104, 1110.The other timestamp may exist within the content of the other media data1108, 1112, 1904.

The capture server 1008A, 1008B exists between the contentidentification server 1006 and the media transmission node 1010A, 1010Bof FIG. 10. According to one embodiment, the capture server 1008A, 1008Bmay comprise a computer hardware system dedicated to processing and/orreplicating at least a portion of the other media data 1904 at the mediatransmission node 1010A, 1010B, detecting a characteristic 1502 (e.g., aclosed captioning, a sound, a text, a voice, a face, a music, a logo, alocation, a name, a scene, a word of interest, a product, and/or another object that may potentially identify the other media data 1904) ofthe other media data 1904, and/or storing the other media data 1904 in apersistent storage (e.g., a disk). The other CID service 1104, 1110 mayexist in the capture server 1008A, 1008B. The capture server 1008A,1008B may comprise a computer, a plurality of computers, and/or apeer-to-peer network of computers. The capture server 1008A, 1008B mayalso be the relevancy-matching server 200, the pairing server 300, theintermediary server 700, and/or the content identification server 1006.

The media transmission node 1010A, 1010B is communicatively coupled tothe capture server 1008A, 1008B of FIG. 10. According to one embodiment,the media transmission node 1010A, 1010B may comprise a televisionbroadcasting station, a radio broadcasting station, a cable head end, aconnection point in a home, and/or an other point in a mediadistribution network. The capture server 1008A, 1008B may be collocatedwith a number of servers at the media transmission node 1010A, 1010B.The capture server 1008A, 1008B may be configured to automaticallygenerate the other CID data 1302, 1306 of the other media data 1904captured at the media transmission node 1010A, 1010B and/or an othertimestamp of the other CID data 1302, 1306 through the other CID service1104, 1110 using a processor and a memory. The capture server 1008A,1008B may also be configured to communicate the other CID data 1302,1306, the other timestamp, and/or the other device identifier to thecontent identification server 1006.

FIG. 11 is a block diagram of a system of automatic bidirectionalcommunication between the client device 100 and the networked device 102involving the content identification server 1006 and a plurality ofother networked devices 1400A, 1400B, according to one embodiment. FIG.11 shows the client device 100, the networked device 102, the CIDservice 1000, 1002, the media data 1004, the content identificationserver 1006, an other client device 1102, an other CID service 1104,1110, the other networked media device 1106A, 1106B, the other mediadata 1108, 1112, and an other electronic program guide 1100.

The other CID service 1104 exists within the other client device 1102,and the other CID service 1110 exists within the other networked mediadevice 1106B of FIG. 11. The other CID service 1104, 1110 may exist inthe plurality of other networked devices 1400A, 1400B (e.g., a number ofother client devices 1102 and/or the number of other networked mediadevices 1106A, 1106B within a limited geographic proximity to thenetworked device 102). The plurality of other networked devices 1400A,1400B may be configured to automatically generate the other CID data1402, 1404 of the other media data 1108, 1112 and/or the other timestampof the other CID data 1402, 1404 through the other CID service 1104,1110 using a processor and a memory. The plurality of other networkeddevices 1400A, 1400B may also be configured to communicate the other CIDdata 1402, 1404, the other timestamp, and/or the other device identifierto the content identification server 1006.

The media data 1004 exists within the networked device 102, the othermedia data 1108 exists within the other networked media device 1106A,and the other media data 1112 exists within the other networked mediadevice 1106B of FIG. 11. The other media data 1108 may be rendered bythe other networked media device 1106A. The other media data 1112 may berendered by the other networked media device 1106B.

The content identification server 1006 exists in the cloud 712 and iscommunicatively coupled to the client device 100, the networked device102, the other client device 1102, and the other networked media device1106B of FIG. 11. The content identification server 1006 may beconfigured to process a plurality of other CID data 1402, 1404 of thenumber of other media data 1108, 1112, a number of other timestamps ofthe plurality of other CID data 1402, 1404, and/or a number of otherdevice identifiers from a plurality of other CID services 1104, 1110.Further, the content identification server 1006 may automaticallydetermine the identification 1304 of the media data 1004 and/or theother media data 1108, 1112 through a crowd sourcing based on aconsensus of a provisional identification 2400 of the media data 1004and a number of other provisional identifications 2400 of the number ofother media data 1108, 1112.

The other electronic program guide 1100 exists in the cloud 712 and iscommunicatively coupled to the content identification server 1006 ofFIG. 11. According to one embodiment, an electronic program guide and/orthe other electronic program guide 1100 may be a schedule of a number ofprograms, a number of channels 2100, and/or a number of times. Theelectronic program guide and/or the other electronic program guide 1100may be available through a set-top box and/or the Internet.

FIG. 12 is a block diagram of the CID service 1002 generating the CIDdata 1200 based on the media data 1004, according to one embodiment.FIG. 12 shows the media data 1004, the CID data 1200, a fingerprint data1202, the watermark data 1204, a descriptive metadata 1206, and anidentifying information 1208.

The CID data 1200 exists at the end of an arrow depicting a process ofgenerating the CID data 1200 from the media data 1004 of FIG. 12. TheCID data 1200, 1300 and/or the other CID data 1302, 1306, 1402, 1404 maybe a reference information derived from and/or associated with the mediadata 1004 and/or the other media data 1108, 1112, 1904. The CID service1000, 1002 of the networked device 102, the client device 100, and/orany of the number of devices that currently and/or previously shared thenetwork with the networked device 102 may automatically generate the CIDdata 1200, 1300. The other CID service 1104, 1110 of the capture server1008A, 1008B and/or the plurality of other networked devices 1400A,1400B may automatically generate the other CID data 1302, 1306, 1402,1404. The CID data 1200, 1300 may comprise the fingerprint data 1202,the watermark data 1204, the descriptive metadata 1206, and/or theidentifying information 1208. The other CID data 1302, 1306, 1402, 1404may comprise an other fingerprint data 1906, 2302, 2306, 2602, an otherwatermark data 2200, 2304, an other descriptive metadata 2308, and/or another identifying information 1800.

The fingerprint data 1202 exists adjacent to the CID data 1200 in anexploded view of the CID data 1200 of FIG. 12. According to oneembodiment, the CID service 1000, 1002 and/or the other CID service1104, 1110 may be configured to automatically generate the fingerprintdata 1202 and/or the other fingerprint data 1906, 2302, 2306, 2602 in amanner such that the CID service 1000, 1002 and/or the other CID service1104, 1110 is configured to detect, extract (e.g., replicate a portionof), quantize (e.g., round a value to a unit of precision), and/or hash(e.g., map a large data set to a small data set) a number ofcharacteristic features and/or a number of other characteristic featuresof the media data 1004 and/or the other media data 1108, 1112, 1904. Thefingerprint data 1202 may comprise a fingerprint data sequence 2000, andthe other fingerprint data 1906, 2302, 2306, 2602 may comprise an otherfingerprint data sequence. The CID service 1000, 1002 and/or the otherCID service 1104, 1110 may also be configured to communicate thefingerprint data 1202 and/or the other fingerprint data 1906, 2302,2306, 2602 to the content identification server 1006.

The watermark data 1204 also exists adjacent to the CID data 1200 in theexploded view of the CID data 1200 of FIG. 12. According to oneembodiment, the CID service 1000, 1002 and/or the other CID service1104, 1110 may be configured to automatically generate the watermarkdata 1204 and/or the other watermark data 2200, 2304 in a manner suchthat the CID service 1000, 1002 and/or the other CID service 1104, 1110is configured to detect and to extract an embedded signal of the mediadata 1004 and/or the other media data 1108, 1112, 1904. The contentidentification server 1006 may be configured to process the watermarkdata 1204 and/or the other watermark data 2200, 2304 from the CIDservice 1000, 1002 and/or the other CID service 1104, 1110. The contentidentification server 1006 may also be configured to compare thewatermark data 1204 and/or the other watermark data 2200, 2304 to aknown watermark data in the watermark database 1700.

Further, the content identification server 1006 may be configured toassociate the identification 1304 and/or the provisional identification2400 (e.g., when the other CID data 1402, 1404 is processed from theplurality of other networked devices 1400A, 1400B) of the media data1004 with the identification of the known watermark data when thewatermark data 1204 is identical to the known watermark data. Similarly,the content identification server 1006 may be configured to associatethe identification 1304 and/or an other provisional identification 2400of the other media data 1108, 1112, 1904 with the identification of theknown watermark data when the other watermark data 2200, 2304 isidentical to the known watermark data.

The descriptive metadata 1206 exists adjacent to the CID data 1200 inthe exploded view of the CID data 1200 of FIG. 12. According to oneembodiment, the CID service 1000, 1002 and/or the other CID service1104, 1110 may be configured to automatically generate the descriptivemetadata 1206 and/or the other descriptive metadata 2308 in a mannersuch that the CID service 1000, 1002 and/or the other CID service 1104,1110 may be configured to process a descriptive data (e.g., a channelnumber, a title, an episode number, a summary, a call sign) and/or another descriptive data added to the media data 1004 and/or the othermedia data 1108, 1112, 1904. The CID service 1000, 1002 and/or the otherCID service 1104, 1110 may also communicate the descriptive metadata1206 and/or the other descriptive metadata 2308 to the contentidentification server 1006. However, if the descriptive metadata 1206and/or the other descriptive metadata 2308 identifies the content of themedia data 1004 and/or the other media data 1108, 1112, the CID service1000, 1002 and/or the other CID service 1104, 1110 of the plurality ofother networked devices 1400A, 1400B may not need to communicate thedescriptive metadata 1206 and/or the other descriptive metadata 2308 tothe content identification server 1006.

The content identification server 1006 may be configured to process thedescriptive metadata 1206 and/or the other descriptive metadata 2308from the client device 100, the networked device 102, the capture server1008A, 1008B, and/or the plurality of other networked devices 1400A,1400B. When the descriptive metadata 1206 identifies the content of themedia data 1004, the content identification server 1006 may be furtherconfigured to associate the descriptive metadata 1206 with theidentification 1304 and/or the provisional identification 2400 of themedia data 1004. When the other descriptive metadata 2308 identifies thecontent of the other media data 1108, 1112, 1904, the contentidentification server 1006 may be further configured to associate theother descriptive metadata 2308 with the identification 1304 and/or theother provisional identification 2400 of the other media data 1108,1112, 1904.

The identifying information 1208 exists adjacent to the CID data 1200 inthe exploded view of the CID data 1200 of FIG. 12. According to oneembodiment, the CID service 1000, 1002 and/or the other CID service1104, 1110 may be configured to generate the identifying information1208 and/or the other identifying information 1800 in a manner such thatthe CID service 1000, 1002 and/or the other CID service 1104, 1110 maybe configured to retrieve the identifying information 1208 (e.g., atitle, an episode number, a summary, a channel number, a call sign)and/or the other identifying information 1800 from a tuner 2300 (e.g., atelevision tuner, a radio tuner, a quadrature amplitude modulationtuner, an Advanced Television Systems Committee tuner, a streamdecoder), an other tuner 1902, the electronic program guide, and/or theother electronic program guide 1100. The capture server 1008A, 1008B,the plurality of other networked devices 1400A, 1400B, and/or thecontent identification server 1006 may access the other tuner 1902and/or the other electronic program guide 1100.

For example, the networked device 102 may identify the channel numberbased on the tuner 2300. The CID service 1002 may access the electronicprogram guide to retrieve the title of the media data 1004 currentlyscheduled for the channel number. The CID service 1000, 1002 and/or theother CID service 1104, 1110 may also communicate the identifyinginformation 1208 and/or the other identifying information 1800 to thecontent identification server 1006. However, if the identifyinginformation 1208 and/or the other identifying information 1800identifies the media data 1004 and/or the other media data 1108, 1112,the CID service 1000, 1002 and/or the other CID service 1104, 1110 maynot need to communicate the identifying information 1208 and/or theother identifying information 1800 to the content identification server1006.

The content identification server 1006 may be configured to process theidentifying information 1208 and/or the other identifying information1800 from the client device 100, the networked device 102, the captureserver 1008A, 1008B, and/or the plurality of other networked devices1400A, 1400B. When the identifying information 1208 identifies thecontent of the media data 1004, the content identification server 1006may be further configured to associate the identifying information 1208with the identification 1304 and/or the provisional identification 2400of the media data 1004. When the other identifying information 1800identifies the content of the other media data 1108, 1112, 1904, thecontent identification server 1006 may be further configured toassociate the other identifying information 1800 with the identification1304 and/or the other provisional identification 2400 of the other mediadata 1108, 1112, 1904.

When the descriptive metadata 1206 identifies a channel 2100 of thenetworked device 102, the content identification server 1006 may befurther configured to associate the media data 1004 with the other mediadata 1904 identified by the capture server 1008A, 1008B configured tomonitor the channel 2100 identified by the descriptive metadata 1206.When the identifying information 1208 identifies the channel 2100 of thenetworked device 102, the content identification server 1006 may befurther configured to associate the media data 1004 with the other mediadata 1904 identified by the capture server 1008A, 1008B configured tomonitor the channel 2100 identified by the identifying information 1208.

When the descriptive metadata 1206 and/or the identifying information1208 identifies the channel 2100 of the networked device 102, thecontent identification server 1006 may also be configured to retrieve acontent identifying information (e.g., a title) associated with thechannel 2100 from the other electronic program guide 1100communicatively coupled with the content identification server 1006 andto associate the content identifying information with the provisionalidentification 2400 of the media data 1004. Additionally, when the otherdescriptive metadata 2308 and/or the other identifying information 1800identifies the channel 2100 of the number of other networked mediadevices 1106A, 1106B, the content identification server 1006 may beconfigured to retrieve the content identifying information associatedwith the channel 2100 from the other electronic program guide 1100communicatively coupled with the content identification server 1006 andto associate the content identifying information with the otherprovisional identification 2400 of the other media data 1108, 1112.

FIG. 13 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the content identification server1006 communicatively coupled to the number of capture servers 1008A,1008B, according to one embodiment. FIG. 13 shows the client device 100,the networked device 102, the content identification server 1006, thenumber of capture servers 1008A, 1008B, the CID data 1200, 1300, theother CID data 1302, 1306, and the identification 1304.

The identification 1304 of the media data 1004 exists between thecontent identification server 1006 and the client device 100 as well asbetween the content identification server 1006 and the networked device102 of FIG. 13. According to one embodiment, the identification 1304 ofthe media data 1004 and/or the other media data 1108, 1112, 1904 maycomprise a title, an episode number, a channel number, a deviceidentifier, and/or an other reference information associated with themedia data 1004 and/or the other media data 1108, 1112, 1904.

The capture server 1008A, 1008B and/or the content identification server1006 may access a greater amount of computational resources and agreater amount of memory resources with which to determine theidentification 1304 of the media data 1004 and/or the other media data1904. The greater amount of computational resources and the greateramount of memory resources of the capture server 1008A, 1008B and/or thecontent identification server 1006 may be conducive to limiting the CIDservice 1000, 1002 to identifying the channel 2100 of the networkeddevice 102. Thus, the other CID service 1104, 1110 of the capture server1008A, 1008B along with the content identification server 1006 maydetermine the identification 1304 of the media data 1004 at a fasterrate. The greater amount of computational resources and the greateramount of memory resources of the capture server 1008A, 1008B and/or thecontent identification server 1006 may also be conducive to separatelyanalyzing an audio portion of the media data 1004 and a video portion ofthe media data 1004. Thus, the other CID service 1104, 1110 of thecapture server 1008A, 1008B along with the content identification server1006 may always analyze the audio portion of the other media data 1904corresponding to the media data 1004 in a manner such that the CIDservice 1000, 1002 may simply query the content identification server1006 for the identification 1304 of the audio portion. The CID service1000, 1002 may be limited to analyzing the video portion of the mediadata 1004 to the extent of identifying the channel 2100 of the networkeddevice 102.

The content identification server 1006 and/or the capture server 1008A,1008B may also be configured to communicate the identification 1304 ofthe media data 1004, the channel 2100, the descriptive metadata 1206,and/or the other descriptive metadata 2308 to the networked device 102,the client device 100, the metadata association server, a contentrecommendation server (e.g., a computer hardware system dedicated tosuggesting a published information related to the media data 1004),and/or any of the number of devices with the access to theidentification data 304 of the networked device 102 and/or thesandbox-reachable service 114 of the networked media device 102 (e.g.,via the remote access token). Thus, the content identification server1006 may act as a trusted intermediary to enforce a policy regardingwhich of the number of devices may access the identification 1304 of themedia data 1004, the channel 2100, the descriptive metadata 1206, and/orthe other descriptive metadata 2308.

The networked device 102, the client device 100, and/or the number ofdevices may perform any of a number of functions with the identification1304 of the media data 1004. For example, the number of devices mayrender a number of recommendations and/or a related media data (e.g.,the published information sharing a commonality with the media data1004) to the user 902. The number of recommendations and/or the relatedmedia data may be initialized by a number of triggers comprising anumber of closed captions, a logo detection, the descriptive metadata1206, a detection of the characteristic 1502, and/or a manual eventtrigger.

For example, the relevancy-matching server 200 may comprise the contentrecommendation server configured to automatically associate, using aprocessor and a memory, the identification (e.g., a title, an episodenumber) of the related media data with the CID data 1200, 1300 of themedia data 1004 presently being rendered by the networked device 102,the identification 1304 of the media data 1004, and/or the number ofmetadata associated with the identification 1304 of the media data 1004.The content recommendation server may comprise a computer, a pluralityof computers, and/or a peer-to-peer network of computers. The contentrecommendation server may also be the content identification server1006, the metadata association server, the intermediary server 700,and/or the pairing server 300.

The CID service 1000, 1002 may communicate the CID data 1200, 1300, theidentification 1304 of the media data 1004, and/or the number ofmetadata associated with the identification 1304 of the media data 1004to the content recommendation server. The content identification server1006 may also communicate the identification 1304 of the media data 1004to the content recommendation server. The metadata association servermay also communicate the number of metadata associated with theidentification 1304 of the media data 1004 to the content recommendationserver. The content recommendation server may be configured tocommunicate the identification of the related media data to thenetworked device 102, the client device 100, the metadata associationserver, and/or any of the number of devices with the access to theidentification data 304.

The relevancy-matching server may also comprise the metadata associationserver configured to automatically associate, using a processor and amemory, the CID data 1200, 1300 of the media data 1004 presently beingrendered by the networked device 102, the identification of the relatedmedia data, and/or the identification 1304 of the media data 1004 withthe number of metadata associated with the identification 1304 of themedia data 1004 and/or the number of metadata associated with theidentification of the related media data. The metadata associationserver may also comprise a computer, a plurality of computers, and/or apeer-to-peer network of computers. The metadata association server maybe an optional intermediary server between the content identificationserver 1006 and the content recommendation server. The metadataassociation server may also be the content identification server 1006,the content recommendation server, the intermediary server 700, and/orthe pairing server 300.

The CID service 1000, 1002 may communicate the CID data 1200, 1300and/or the identification 1304 to the metadata association server. Thecontent identification server 1006 may also communicate theidentification 1304 to the metadata association server. The contentrecommendation server may communicate the identification of the relatedmedia data to the metadata association server. The metadata associationserver may generate the number of metadata associated with theidentification 1304 of the media data 1004 and/or the number of metadataassociated with the identification of the related media data byaccessing Tribune®, Rovi®, IMDb®, and/or an other source for the numberof metadata about the media data 1004 and/or the related media data. Themetadata association server may be configured to communicate the numberof metadata associated with the identification 1304 of the media data1004 and/or the number of metadata associated with the identification ofthe related media data to the content recommendation server, thenetworked device 102, the client device 100, and/or any of the number ofdevices with the access to the identification data 304.

Further, the relevancy-matching server 200 may comprise a related mediadata provider (e.g., a computer hardware system dedicated totransmitting the related media data using a processor and a memory). Therelated media data provider may comprise a computer, a plurality ofcomputers, and/or a peer-to-peer network of computers. The related mediadata provider may also be the content identification server 1006, themetadata association server, the content recommendation server, theintermediary server 700, the capture server 1008A, 1008B, and/or thepairing server 300.

When the related media data provider is the capture server 1008A, 1008B,a synchronized viewing may be enabled. The synchronized viewing mayaugment the media data 1004 with the related media data that is beingbroadcasted. The capture server 1008A, 1008B may capture an audioportion of the media data 1004 separately from a video portion of themedia data 1004. The capture server 1008A, 1008B may then use a numberof timestamps of the other CID data 1302, 1306 to correlate the audioportion of the media data 1004 and/or the related media data to thevideo portion of the media data 1004 and/or the related media data basedon a choice of the user 902.

For example, the user 902 may view the video portion of the media data1004 and switch between the audio portion of the media data 1004 and theaudio portion of the related media data. Alternatively, the user maylisten to the audio portion of the media data 1004 and switch betweenthe video portion of the media data 1004 and the video portion of therelated media data. The media data 1004 and the related media data maybe the media data 1004 broadcasted on a number of different channels.Thus, the user 902 may select a superior audio portion and/or a superiorvideo portion.

According to one embodiment, the client device 100 may be configured torender the related media data to the user 902 through the networkeddevice 102 and/or the client device 100. The sandboxed application 112may be configured to process the identification of the related mediadata from the content recommendation server. The sandboxed application112 may also be configured to suggest the identification of the relatedmedia data to the user 902. Further, the sandboxed application 112 maybe configured to process a request to render the related media datathrough the networked device 102 and/or the client device 100 based on aselection of the user 902. Still further, the sandboxed application 112may be configured to communicate the request and/or the related mediadata to the networked device 102 when the selection comprises therequest to render the related media data through the networked device102. The networked device 102 and/or the client device 100 may beconfigured to retrieve the related media data from the related mediadata provider.

In another embodiment, the content identification server 1006, themetadata association server, and/or the content recommendation servermay also be used to automatically update an initial user interface (UI)of the networked device 102 with the identification 1304 of the mediadata 1004, the identification of the related media data, the number ofmetadata associated with the identification 1304 of the media data 1004,and/or the number of metadata associated with the identification of therelated media data. The initial UI may comprise a number of UI elementsand/or a number of pages. The networked device 102 may be configured toautomatically update and/or display the initial UI. The initial UI maybe displayed prior to, after, and/or simultaneously with (e.g., overlaidupon, alongside) a rendering of an initial media data (e.g., the mediadata 1004 that is rendered immediately following a hardware startupsequence of the networked device 102).

A number of user interactions may trigger the networked device 102 todisplay the initial UI. For example, the initial UI may be displayedwhen the user 902 logs into and/or pairs with the networked device 102.The initial UI may also be displayed when the user 902 otherwiseinteracts with the networked device 102 from the client device 100(e.g., when the client device 100 is used as a remote control and/or acompanion application to the networked device 102).

Further, the initial UI may be displayed when the user 902 and/or anunrecognized user is detected. For example, the networked device 102 mayaccess and/or be communicatively coupled to a camera that detects theuser 902 and/or the unrecognized user. The camera may identify the user902 using a facial recognition algorithm. The networked device 102 mayalso access and/or be communicatively coupled to a microphone thatdetects the user 902 and/or the unrecognized user. The microphone mayidentify the user 902 using a voice recognition algorithm. Thus, theinitial UI that is customized (e.g., based on a prior usage, a number ofpolicy settings, and/or a demographic profile) for the user 902 and/orthe unrecognized user may be displayed when the user 902 and/or theunrecognized user is within a certain proximity of the networked device102.

For example, a certain initial UI may be displayed when a male child isdetected. A different initial UI may be displayed when an adult womanapproaches the male child. If the unrecognized user is detected, thenetworked device 102 may create a user profile. The user profile may bebased on a number of analytics comprising the prior usage, the number ofpolicy settings, and/or the demographic profile. The initial UI may becustomized based on the user profile.

The prior usage may comprise a number of identifications of a number ofpreviously rendered media data (e.g., the primary data 500) in theclient device 100, the networked device 102, and/or any of the number ofdevices that currently and/or previously shared the network with thenetworked device 102. The networked device 102, the client device 100,the content identification server 1006, the metadata association server,the content recommendation server, the intermediary server 700, therelevancy-matching server 200, and/or any of the number of devices thatcurrently and/or previously shared the network with the networked device102 may be configured to retrieve, aggregate, and/or store the number ofidentifications of the number of previously rendered media data.

The number of identifications of the number of previously rendered mediadata may be stored in an identification database. The identificationdatabase may be associated with the user profile, the network, thenetworked device 102, the client device 100, and/or any of the number ofdevices that currently and/or previously shared the network with thenetworked device 102. The identification database may reside in thenetworked device 102, the client device 100, the content identificationserver 1006, the metadata association server, the content recommendationserver, the intermediary server 700, the relevancy-matching server 200,and/or any of the number of devices that currently and/or previouslyshared the network with the networked device 102.

The networked device 102, the client device 100, the contentidentification server 1006, the metadata association server, the contentrecommendation server, and/or any of the number of devices thatcurrently and/or previously shared the network with the networked device102 may be configured to compare the identification of the related mediadata to the identification database and to determine the identificationof the related media data to be an unrendered related media data (e.g.,a missed episode). The initial UI may not be updated with theidentification of the related media data when the identification of therelated media data comprises a previously rendered media data. Thenetworked device 102, the client device 100, the content identificationserver 1006, the metadata association server, the content recommendationserver, the intermediary server 700, the relevancy-matching server 200,and/or any of the number of devices that currently and/or previouslyshared the network with the networked device 102 may be configured toautomatically update the initial UI.

Additionally, the initial UI may be configured to display a number ofchannels and/or the number of identifications of the number ofpreviously rendered media data based on a number of occurrences of thenumber of channels and/or the number of identifications of thepreviously rendered media data in the identification database. Forexample, the initial UI may display a number of favorite channels and/ora number of favorite media data. Further, the networked device 102 maybe configured to access the electronic program guide and to retrieve theoccurrence of a presently renderable media data (e.g., a program thathas already started, a program that is about to start) from theelectronic program guide. The presently renderable media data maycomprise the related media data. In addition, the initial UI may beconfigured to change the channel 2100 rendered by the networked device102 based on a selection of the user 902 and/or an other user. Forexample, the initial UI may access a remote control interface (e.g., viaan infrared blaster) of a set-top box to effect a channel change.

Thus, the initial UI may display the media data 1004, the related mediadata, the identification 1304 of the media data 1004, the identificationof the related media data, the number of metadata associated with themedia data 1004, the number of metadata associated with the relatedmedia data, the presently renderable media data, the identification ofthe presently renderable media data, and/or the number ofidentifications of the number of previously rendered media data. Theinitial UI may also display a history of the number of previouslyrendered media data (e.g., a list of the 10 most recently viewed shows).The initial UI may also comprise a link to the related media dataprovider. The related media data may be rendered to the user 902 and/orthe other user based on an action comprising a click-through action, asubscription action, and/or a purchase action (e.g., a pay-per-viewpurchase).

FIG. 14 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the content identification server1006 and the plurality of other networked devices 1400A, 1400B,according to one embodiment. FIG. 14 shows the client device 100, thenetworked device 102, the content identification server 1006, the otherelectronic program guide 1100, the CID data 1200, 1300, the other CIDdata 1402, 1404, the identification 1304, and the plurality of othernetworked devices 1400A, 1400B.

The content identification server 1006 may be configured toautomatically determine the identification 1304 of the media data 1004through the crowd sourcing. The crowd sourcing may be based on theconsensus of the provisional identification 2400 and a plurality ofother provisional identifications 2400. The content identificationserver 1006 may be configured to aggregate the provisionalidentification 2400 and the plurality of other provisionalidentifications 2400. The consensus may be algorithmically determinedbased on a number of criteria comprising a predetermined percentage of apredetermined number of samples, a reliability of the provisionalidentification 2400, and/or an other factor affecting a confidence score(e.g., measures an accuracy of the identification 1304 of the media data1004) of the consensus.

The crowd sourcing may be used as an alternative or as a supplement tothe capture server 1008A, 1008B. For example, the crowd sourcing may beused as the alternative to the capture server 1008A, 1008B in an area inwhich the capture server 1008A, 1008B has not been deployed. The crowdsourcing may be used as the supplement to the capture server 1008A,1008B to detect a discrepancy between the identification 1304 of themedia data 1004 determined using the capture server 1008A, 1008B and theidentification 1304 of the media data 1004 using the crowd sourcing.

FIG. 15 is a block diagram depicting the content identification server1006 configured to generate an annotated metadata 1504, according to oneembodiment. FIG. 15 shows the client device 100, the networked device102, the content identification server 1006, the capture server 1008A, acharacteristics database 1500, the characteristic 1502, and theannotated metadata 1504.

The characteristics database 1500 exists within the contentidentification server 1006 of FIG. 15. According to one embodiment, thecharacteristics database 1500 may be a structured collection ofinformation about a number of potentially identifying features of theother media data 1904.

The characteristic 1502 exists between the content identification server1006 and the capture server 1008A of FIG. 15. The capture server 1008A,1008B may be configured to store the other media data 1904 captured atthe media transmission node 1010A, 1010B in a non-volatile memory (e.g.,a disk). The other media data 1904 captured at the media transmissionnode 1010A, 1010B may be retrieved from a buffer of a predeterminedlength in the capture server 1008A, 1008B. The capture server 1008A,1008B may be configured to detect the characteristic 1502 of the othermedia data 1904 captured at the media transmission node 1010A, 1010B.The capture server 1008A, 1008B may use a number of quadrature amplitudemodulation (QAM) tuner cards and/or receive a video signal over IP usinga number of Moving Pictures Expert Group (MPEG)-2 streams and/or MPEG4including a number of data packets containing the closed captioning. Thecapture server 1008A, 1008B may also be configured to communicate thecharacteristic 1502 to the content identification server 1006.

The content identification server 1006 may be configured to process thecharacteristic 1502 from the capture server 1008A, 1008B. The contentidentification server 1006 may also be configured to identify thecharacteristic 1502 by comparing the characteristic 1502 to thecharacteristics database 1500.

The characteristics database 1500 may also exist in the capture server1008A, 1008B. For example, when the characteristics database 1500 existsin the capture server 1008A, 1008B, the capture server 1008A, 1008B maybe configured to identify the characteristic 1502 by comparing thecharacteristic 1502 to the characteristics database 1500.

In another embodiment, the capture server 1008A, 1008B may communicatethe other media data 1904 to the content identification server 1006.Thus, the content identification server 1006 may be configured to detectthe characteristic 1502 of the other media data 1904.

The annotated metadata 1504 exists between the content identificationserver 1006 and the client device 100 as well as between the contentidentification server 1006 and the networked device 102 of FIG. 15.According to one embodiment, the annotated metadata 1504 may comprise amachine-readable information describing the characteristic 1502. Thecontent identification server 1006 and/or the capture server 1008A,1008B may be configured to generate the annotated metadata 1504associated with the other media data 1904 captured at the mediatransmission node 1010A, 1010B. The characteristic 1502 may be annotatedin the annotated metadata 1504. The annotated metadata 1504 may comprisethe descriptive metadata 1206 and/or the other descriptive metadata2308.

The content identification server 1006 and/or the capture server 1008A,1008B may communicate the annotated metadata 1504 to the networkeddevice 102, the client device 100, and/or any of the number of deviceswith the access to the identification data 304 of the networked device102 and/or the sandbox-reachable service 114 of the networked device102. The networked device 102, the client device 100, and/or the numberof devices may long poll and/or maintain a web socket open to thecontent identification server 1006 and/or the capture server 1008A,1008B in a manner such that when the content identification server 1006and/or the capture server 1008A, 1008B identifies the characteristic1502, the content identification server 1006 and/or the capture server1008A, 1008B may communicate the annotated metadata 1504 to thenetworked device 102, the client device 100, and/or the number ofdevices.

FIG. 16 is a block diagram depicting the content identification server1006 configured to generate an identifying metadata 1602, according toone embodiment. FIG. 16 shows the client device 100, the networkeddevice 102, the content identification server 1006, the capture server1008A, the characteristics database 1500, an identifying characteristic1600, and the identifying metadata 1602.

The identifying characteristic 1600 exists between the contentidentification server 1006 and the capture server 1008A of FIG. 16.According to one embodiment, the identifying characteristic 1600 maycomprise the characteristic 1502 that may identify a recurring sequence2102 (e.g., an advertisement). The capture server 1008A, 1008B may beconfigured to detect the identifying characteristic 1600 of the othermedia data 1904 associated with the recurring sequence 2102. The captureserver 1008A, 1008B may also be configured to communicate theidentifying characteristic 1600 to the content identification server1006.

The content identification server 1006 may be configured to process theidentifying characteristic 1600 from the capture server 1008A, 1008B.The content identification server 1006 may also be configured toidentify the identifying characteristic 1600 by comparing theidentifying characteristic 1600 to the characteristics database 1500.Alternatively, when the characteristics database 1500 exists in thecapture server 1008A, 1008B, the capture server 1008A, 1008B may beconfigured to identify the identifying characteristic 1600 by comparingthe identifying characteristic 1600 to the characteristics database1500.

In another embodiment, the capture server 1008A, 1008B may communicatethe other media data 1904 to the content identification server 1006.Thus, the content identification server 1006 may be configured to detectthe identifying characteristic 1600 of the other media data 1904.

The identifying metadata 1602 exists between the content identificationserver 1006 and the client device 100 as well as between the contentidentification server 1006 and the networked device 102 of FIG. 16.According to one embodiment, the identifying metadata 1602 may comprisea machine-readable information describing the identifying characteristic1600. The content identification server 1006 and/or the capture server1008A, 1008B may be configured to generate the identifying metadata 1602associated with the recurring sequence 2102. The identifyingcharacteristic 1600 may be annotated in the identifying metadata 1602.The identifying metadata 1602 may comprise the descriptive metadata 1206and/or the other descriptive metadata 2308.

The content identification server 1006 and/or the capture server 1008A,1008B may communicate the identifying metadata 1602 to the networkeddevice 102, the client device 100, and/or any of the number of deviceswith the access to the identification data 304 of the networked device102 and/or the sandbox-reachable service 114 of the networked device102. The networked device 102, the client device 100, and/or the numberof devices may long poll and/or maintain the web socket open to thecontent identification server 1006 and/or the capture server 1008A,1008B in a manner such that when the content identification server 1006and/or the capture server 1008A, 1008B identifies the identifyingcharacteristic 1600, the content identification server 1006 and/or thecapture server 1008A, 1008B may communicate the identifying metadata1602 to the networked device 102, the client device 100, and/or thenumber of devices.

A video sequence, an audio sequence, and/or a subset of frames of theother media data 1904 that is stored by the capture server 1008A, 1008Bmay also enable a curation of the video sequence, the audio sequence,and/or the subset of frames by the user 902 of the networked device 102and/or the client device 100 without requiring the networked device 102and/or the client device 100 to directly capture the video sequence, theaudio sequence, and/or the subset of frames of the media data 1004. Whenthe user 902 initiates a request for the video sequence, the audiosequence, and/or the subset of frames, the capture server 1008A, 1008Bmay go backwards in time from the request to retrieve the other mediadata 1904 from the buffer.

The user 902 of the networked device 102 may initiate the request usingthe remote control. The remote control may be the client device 100acting as the remote control. The request may specify a particular videosequence, a particular audio sequence, and/or a particular subset offrames based on a number of actions of the user 902. When theidentification 1304 of the media data 1004 has been determined, thecapture server 1008A, 1008B may be queried for the video sequence, theaudio sequence, and/or the subset of frames corresponding to theidentification 1304 of the media data 1004 and the timestamp of themedia data 1004. The capture server 1008A, 1008B and/or the contentidentification server 1006 may communicate a media data set to thenetworked device 102.

The media data set may comprise the video sequence and/or the audiosequence. The media data set may comprise the subset of frames and/or anumber of images derived from the subset of frames (e.g., a thumbnail).The media data set may comprise a number of actual images and/or anumber of URLs referring to the number of images. The media data set maycomprise a set of clips associated with a number of points in the mediadata 1004 that have been provided by a content provider. The media dataset may comprise the particular video sequence, the particular audiosequence, and/or the particular subset of frames specified by the user902. The media data set may be communicated to a predetermined location(e.g., an email address, a POST to a URL) by the capture server 1008A,1008B and/or the content identification server 1006.

The user 902 of the client device 100 may initiate the request using thesandboxed application 112 and/or an other application of the clientdevice 100. The sandboxed application 112 and/or the other applicationmay be paired with the networked device 102 (e.g., using the pairingserver 300, using the extension 404 to the security sandbox 104, using ahidden signal of the networked device 102, using a bar code and/or amatrix code of the networked device 102). The client device 100 mayobtain the identification 1304 of the media data 1004 and the timestampof the media data 1004 from the networked device 102. The capture server1008A, 1008B may be queried for the video sequence, the audio sequence,and/or the subset of frames corresponding to the identification 1304 ofthe media data 1004 and the timestamp of the media data 1004. Thecapture server 1008A, 1008B and/or the content identification server1006 may communicate the media data set to the client device 100 and/orto the predetermined location.

The networked device 102 and/or the client device 100 may implement anyof a number of applications for handling the media data set. Thenetworked device 102 and/or the client device 100 may display the mediadata set in a tile list, as a slide show, and/or in an other format fornavigating the media data set. The user 902 may select a subset of themedia data set in the networked device 102 and/or the client device 100.The networked device 102 and/or the client device 100 may communicatethe subset of the media data set to a media data storage server thatstores a number of pinned media data. The media data storage server maybe separate from the capture server 1008A, 1008B, the contentidentification server 1006, the relevancy-matching server 200, theintermediary server 700, and/or the pairing server 300.

The user 902 may communicate the subset of the media data set to themedia data storage server by posting (e.g., using a HTTP POST) thesubset of the media data set, posting a list of the number of URLs ofthe subset of the media data set, using a plurality of HTTP POSTs of anumber of individual URLs to the subset of the media data set, etc. Theuser 902 may post the number of individual URLs by encoding a number ofmedia data URLs as a number of values in a number of query stringkey-value pairs in the number of individual URLs HTTP POSTed or passedvia an HTTP GET. The user 902 may recall the subset of the media dataset in the media data storage server by visiting a web site, running adesktop application that communicates with the media data storageserver, etc.

The client device 100 may be automatically configured to act as theremote control. When the client device 100 and the networked device 102reside behind a same public IP address, the client device 100 maydiscover the networked device 102 using the discovery service. Thediscovery service may communicate the model identifier and/or a remotecontrol configuration identifier of the networked device 102 to theclient device 100. When the client device 100 and the networked device102 are paired using the hidden signal of the networked device 102, theclient device 100 and the networked device 102 may not be required toreside on a same network. The hidden signal may be a covert channelembedded in an audio output, an image output, and/or a video output ofthe networked device 102. For example, the covert channel may be a videowatermark identifier. The hidden signal may communicate the modelidentifier and/or the remote control configuration identifier to theclient device 100. The model identifier and/or the remote controlconfiguration identifier may be used to lookup a configurationinformation for an infrared component, a Bluetooth component, and/or another remote control component. If the client device 100 maintains alocal database of a number of remote control configurations (e.g., anIrDA profile), the client device 100 may not need to access theInternet.

The covert channel may be a low-bitrate communication in one-direction.The covert channel may use a relatively small amount of power. Thecovert channel may enable the communication session 116 between thesandboxed application 112 and the sandbox-reachable service 114 withoutopening the networked device 102 to a security risk. The covert channelmay enable the client device 100 on the cellular network 710 tocommunicate with the networked device 102 over the Internet. Thenetworked device 102 may be aware of (e.g., via an initialconfiguration, via a HDMI-CEC) the number of devices to which thenetworked device 102 is communicatively coupled. The covert channeland/or a serving device described by the covert channel may announce thenumber of devices to which the networked device 102 is communicativelycoupled.

The covert channel may continuously announce the device identifier ofthe networked device 102 and/or the identification data 304. Thesandboxed application 112 of the client device 100 and/or the otherapplication of the client device 100 may process the audio output, theimage output, and/or the video output, extract the covert channel, anduse the device identifier and/or the identification data 304 to pairwith the networked device 102 and/or a service of the networked device102. The networked device 102 and the client device 100 may not resideon the same network. For example, the client device 100 may use a dataservice (e.g., a 3G service, a 4G service) and/or a text message service(e.g., a SMS service) while the networked device 102 may use a wiredconnection and/or a wireless connection (e.g., a WiFi connection) to theInternet. The sandboxed application 112 and/or the other application ofthe client device 100 may use a relay service (e.g., via the pairingserver 300, via the extension 404) to communicate with the networkeddevice 102. To determine the number of devices announcing via the covertchannel, the sandboxed application 112 may use the loopback interface tocontact a service agent running on a well-known port on the clientdevice 100 that is outside the security sandbox 104.

To increase a level of security, the networked device 102 may not usethe covert channel to announce the GUID 704. The networked device 102may generate an ephemeral (e.g., time varying) GUID to announce via thecovert channel. The networked device 102 may communicate the ephemeralGUID and the GUID 704 to the relay service via an IP pathway.Alternatively, the relay service and the networked device 102 mayestablish a shared secret. The networked device 102 may generate theephemeral GUID from the shared secret and the GUID 704. The relayservice may then reconstruct the GUID 704.

The covert channel may be masked by the audio output, the image output,and/or the video output of the networked device 102. For example, if thenetworked device 102 has a microphone, the networked device 102 may maskthe covert channel using an environmental noise. If the networked device102 does not have a microphone, the networked device 102 may mask thecovert channel using a broad spectrum of the audio output, the imageoutput, and/or the video output to appear as a white noise. Thus, thenetworked device 102 that is otherwise powered off and the networkeddevice 102 that does not naturally generate the audio output, the imageoutput, and/or the video output may mask the covert channel.

When the client device 100 receives a broadcast identifier (e.g., thedevice identifier, the GUID 704, the ephemeral GUID), the client device100 may contact the discovery service passing the broadcast identifier.The discovery service may be reachable by the client device 100. Theclient device 100 may not reside on the same network as the networkeddevice 102 and/or the serving device. The client device 100 may not havea security access to the network of the serving device and/or thenetworked device 102. Thus, the discovery service may not reside on thesame network as the serving device and/or the networked device 102.

The discovery service may be a distributed service running on apeer-to-peer substrate (e.g., a Distributed Hash Table) and/or acentralized discovery service for the Internet (e.g., via the pairingserver 300). The discovery service may be used for a security overlay.The discovery service may be used to lookup a number of services madeavailable by a discovered device (e.g., discovered by the covertchannel). Thus, a very low bitrate may be used for the covert channelwhile a higher bitrate channel may be used for communicating a number ofservice details. However, the number of service details may also becommunicated through the covert channel in a form of the modelidentifier, a description, etc. Communicating the number of servicedetails in the covert channel may require a greater amount of resourcesfrom the low bitrate channel. Thus, the broadcast identifier may becommunicated less frequently and/or the higher bitrate channel maybecome more intrusive and/or less covert.

The relay service may be used by the client device 100 to communicatewith the number of services. The client device 100 may not have anetwork connectivity usually associated with the Internet. The clientdevice 100 may use the text message service to send a number of messagesto a 1-800 phone number and/or an equivalent number acting as a gatewayto relay a number of calls to the number of services.

For example, a company may have a slideshow projector dedicated torunning a slideshow application. The company may not wish to grant anetwork access to a mobile phone of a visitor, but the company may wishto allow the visitor to use the slideshow projector. The slideshowprojector may use an audio covert channel to announce the broadcastidentifier of the slideshow projector. The visitor may run the slideshowapplication on the mobile phone which detects the slideshow projector bylistening on the microphone of the mobile phone. The mobile phone maynot have a direct access to an IP network. The mobile phone may have theSMS service, the 3G service, the 4G service, an other packet service,and/or an other message service. The slideshow application of the mobilephone may send a command to run the slideshow application at a specifiedURL to the 1-800 phone number of the centralized discovery service. Thecentralized discovery service may forward the command over the Internetto the slideshow projector. The slideshow projector may download theslideshow from the specified URL. The slideshow application of themobile phone may send a number of subsequent commands via the gateway tomove to an other slide and/or otherwise control the slideshow. Thus, theslideshow may be displayed on a secure network of the company through alimited externally facing API. The slideshow application may be used asa trusted intermediary between the secure network and the mobile phone.

In another embodiment, the device identifier may be embedded in the barcode, the matrix code (e.g., a 2D bar code, an Aztec code, a QR code),and/or a similar pattern that is attached to the networked device 102(e.g., as a sticker) and/or displayed through the networked device 102(e.g., displayed on a television screen by going to a preferenceschannel). The client device 100 may take a picture of the bar code, thematrix code, and/or the similar pattern using a camera. The clientdevice 100 may process the picture to extract the bar code, the matrixcode, and/or the similar pattern. The device identifier obtained fromextract the bar code, the matrix code, and/or the similar pattern may beused in a similar manner as the device identifier obtained from thecovert channel. For example, the device identifier may enable the clientdevice 100 to communicate with the networked device 102 via the SMSservice, the 3G service, the 4G service, a WiFi service, etc. The barcode may comprise a Universal Product Code (UPC). The UPC may providethe model identifier with which to select a remote control profile.

For example, the slideshow projector may bear a sticker with the barcode. Alternatively, the slideshow projector may project the bar codeonto a surface (e.g., a screen, a wall). The mobile phone may take thepicture of the bar code using the camera of the mobile phone. The deviceidentifier of the slideshow projector may be used to automaticallyconfigure the mobile phone to act as the remote control for theslideshow projector.

A time estimation algorithm may also estimate a playback time within thecontent of the media data 1004 and/or the other media data 1108, 1112,1904. When the audio output, the image output, and/or the video outputof the networked device 102 may not be accessed, the covert channel maynot be used to embed the broadcast identifier. However, theidentification 1304 of the media data 1004 along with an estimatedplayback time within the content of the media data 1004 may be used todisambiguate between the number of devices and/or the number of servicesknown to the sandboxed application 112 and/or the other application ofthe client device 100. The number of devices and/or the number ofservices may be known via the discovery service by an account binding, anumber of short codes, and/or an other binding mechanism that pairsand/or binds the sandboxed application 112 and/or the other applicationof the client device 100 to the number of devices and/or the number ofservices. The number of devices may have been previously paired (e.g.,when the client device 100 of the user 902 was in a different network).The sandboxed application 112 and/or the other application of the clientdevice 100 may access an audio input (e.g., a microphone), an imageinput, and/or a video input (e.g., a camera) to identify the content ofthe media data 1004.

If a known device is playing an identified content, a credibility may beadded to a hypothesis that the identified content was generated by theknown device. If the playback time for the content played by the knowndevice playing the identified content also happens near the estimatedtime, the credibility of the hypothesis may be increased. If the knowndevice also happens to be in the same network as the sandboxedapplication 112 and/or the other application of the client device 100,the credibility of the hypothesis may be further increased. A pluralityof criteria (e.g., a nearness in a number of estimated playback times; arecency in time since the known device was last discovered; a nearnessin a number of GPS coordinates and/or a number of Geo-IP coordinates ofthe known device, the sandboxed application 112, and/or the otherapplication; a sharing of the same network as determined by a sharedpublic IP; the sharing of the same network via an other discoveryservice) may be combined to increase the credibility of the hypothesis.

When the known device has been determined to be near the client device100 with a sufficiently high confidence, the sandboxed application 112and/or the other application may perform a bidirectional communicationwith the known device and/or a service of the known device. For example,the client device 100 may query the known device for the identification1304 of the media data 1004 recently rendered by the known device.

FIG. 17 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the watermark data 1204, accordingto one embodiment. FIG. 17 shows the networked device 102, the contentidentification server 1006, the watermark data 1204, the identification1304, and the watermark database 1700.

The watermark database 1700 exists within the content identificationserver 1006 of FIG. 17. According to one embodiment, the watermarkdatabase 1700 may be a structured collection of information comprisingthe known watermark data and the identification of the known watermarkdata.

For example, FIG. 17 illustrates the networked media device 102communicating the watermark data 1204 of the media data 1004 to thecontent identification server 1006. The content identification server1006 then compares the watermark data 1204 to the known watermark datain the watermark database 1700 and communicates the identification ofthe known watermark data when the watermark data 1204 is identical tothe known watermark data.

FIG. 18 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the identifying information 1208,according to one embodiment. FIG. 18 shows the networked device 102, thecontent identification server 1006, the capture server 1008A, theidentifying information 1208, the identification 1304, the otherelectronic program guide 1100, and the other identifying information1800.

For example, FIG. 18 illustrates the networked device 102 communicatingthe identifying information 1208 that identifies the channel 2100 of thenetworked device 102 to the content identification server 1006. Thecapture server 1008A monitoring the channel 2100 accesses the otherelectronic program guide 1100 and determines the identification 1304 ofthe other media data 1904 scheduled for the channel 2100. The captureserver 1008A then communicates the other identifying information 1800that identifies the content of the other media data 1904 to the contentidentification server 1006. The content identification server 1006processes the other identifying information 1800 and associates theother identifying information 1800 with the identification 1304 of theother media data 1904. The content identification server 1006 thenassociates the identification 1304 with the media data 1004 andcommunicates the identification 1304 to the networked device 102.

FIG. 19 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the fingerprint data 1202 and theother fingerprint data 1906, according to one embodiment. FIG. 19 showsthe networked device 102, the capture server 1008A, the mediatransmission node 1010A, the content identification server 1006, thefingerprint data 1202, the fingerprint database 1900, the other tuner1902, the other media data 1904, the other fingerprint data 1906, andthe other electronic program guide 1100.

The other tuner 1902 exists between the capture server 1008A and themedia transmission node 1010A of FIG. 19. According to one embodiment,the other tuner 1902 and/or the tuner 2300 may be a television tuner, aradio tuner, and/or an other means of selecting a media channel.

For example, FIG. 19 illustrates an embodiment in which the networkeddevice 102 communicates the fingerprint data 1202 to the contentidentification server 1006, and the capture server 1008A communicatesthe other fingerprint data 1906 to the content identification server1006. The capture server 1008A monitors the other media data 1904 of thechannel 2100 through the other tuner 1902 at the media transmission node1010A. Thus, the capture server 1008A also communicates the channel 2100to the content identification server 1006. The content identificationserver 1006 processes the channel 2100 from the capture server 1008A andaccesses the other electronic program guide 1100 to obtain theidentification 1304 of the other media data 1904. The contentidentification server 1006 then associates the identification 1304 ofthe other media data 1904 with the other fingerprint data 1906. If thefingerprint data 1202 matches the other fingerprint data 1906, thecontent identification server 1006 also associates the identification1304 of the other media data 1904 with the fingerprint data 1202 andcommunicates the identification 1304 to the networked device 102.

The fingerprint database 1900 exists within the content identificationserver 1006 of FIG. 19. According to one embodiment, the fingerprintdatabase 1900 may be a structured collection of information comprisingthe fingerprint data 1202, the other fingerprint data 1906, 2302, 2306,2602, the timestamp, the other timestamp, the device identifier, theother device identifier, the identification 1304 of the media data 1004,the identification 1304 of the other media data 1108, 1112, 1904, theprovisional identification 2400, and/or the other provisionalidentification 2400.

The content identification server 1006 may store the fingerprint data1202 and/or the other fingerprint data 1906, 2302, 2306, 2602 in thefingerprint database 1900. The fingerprint database 1900 may be updatedat any time with the fingerprint data 1202, the other fingerprint data1906, 2302, 2306, 2602, the timestamp, the other timestamp, the deviceidentifier, the other device identifier, the identification 1304 of themedia data 1004, the identification 1304 of the other media data 1108,1112, 1904, the provisional identification 2400, and/or the otherprovisional identification 2400. The fingerprint database 1900 may beupdated in a manner such that, in the future, the content identificationserver 1006 may process the fingerprint data 1202 and check thefingerprint database 1900 for a match 2002 prior to processing the otherfingerprint data 1906, 2302, 2306, 2602.

The content identification server 1006 may be configured to process theother fingerprint data 1906, 2302, 2306, 2602 of the other media data1108, 1112, 1904 from the capture server 1008A, 1008B and/or theplurality of other networked devices 1400A, 1400B. The contentidentification server 1006 may also be configured to store the otherfingerprint data 1906, 2302, 2306, 2602 in the fingerprint database1900. Further, the content identification server 1006 may be configuredto process the fingerprint data 1202 of the media data 1004 from thenetworked device 102, the client device 100, and/or any of the number ofdevices that previously and/or currently shared the network with thenetworked device 102.

The content identification server 1006 may compare the fingerprint data1202 to the other fingerprint data 1906, 2302, 2306, 2602. The otherfingerprint data 1906, 2302, 2306, 2602 may exist in the fingerprintdatabase 1900. Further, the content identification server 1006 mayautomatically determine the identification 1304 of the media data 1004by associating the fingerprint data 1202 with the identification 1304and/or the provisional identification 2400 of the other media data 1108,1112, 1904 associated with the other fingerprint data 1906, 2302, 2306,2602 that matches the fingerprint data 1202.

FIG. 20 is a table 2050 depicting a determination of the identification1304 of the media data 1004 by comparing the fingerprint data sequence2000 to the fingerprint database 1900, according to one embodiment. FIG.20 shows the fingerprint data sequence 2000, the fingerprint database1900, the match 2002, and the table 2050.

The fingerprint data sequence 2000 exists as a column of the table 2050of FIG. 20. According to one embodiment, the fingerprint data sequence2000 and/or the other fingerprint data sequence may be a series ofconsecutive fingerprint data. A probability of a false positive (e.g.,when the fingerprint data 1202 and the other fingerprint data 1906,2302, 2306, 2602 match while the media data 1004 and the other mediadata 1108, 1112, 1904 do not match) using a single fingerprint data maybe (1−p[correct match]). However, the probability of the false positiveusing the fingerprint data sequence 2000 may be (1−p[correct match])^(r)where r=a length of the fingerprint data sequence 2000. Thus, theconfidence score of the match 2002 may be based on the length of amatching fingerprint data sequence.

Thus, the probability of the false positive may be reduced to anegligible level by comparing the fingerprint data sequence 2000 of themedia data 1004 to the other fingerprint data sequence. The contentidentification server 1006 may be configured to compare the fingerprintdata sequence 2000 of the media data 1004 to the other fingerprint datasequence. The content identification server 1006 may also be configuredto associate the fingerprint data sequence 2000 with the identification1304 and/or the provisional identification 2400 of the other media data1108, 1112, 1904 associated with the other fingerprint data sequencewhen a predetermined number of sequential fingerprint data of thefingerprint data sequence 2000 matches the predetermined number ofsequential fingerprint data of the other fingerprint data sequence.

To account for a number of missing fingerprint data in the fingerprintdata sequence 2000 and/or the other fingerprint data sequence, thecontent identification server 1006 may be configured to apply analgorithm comprising a sliding window algorithm. For example, thefingerprint database 1900 may store the other fingerprint data sequence2000 “A-B-C-D.” The content identification server 1006 may compare theother fingerprint data sequence to the fingerprint data sequence 2000“A-B-_-D” where “_” denotes a missing fingerprint data (e.g., thefingerprint data 1202 at a time between the timestamp for thefingerprint data 1202 “B” and the timestamp for the fingerprint data1202 “D”). The sliding window algorithm may require two matchingfingerprint data before a particular fingerprint data and one matchingfingerprint data after the particular fingerprint data in order toinclude the fingerprint data 1202 in the fingerprint data sequence 2000.Thus, the sliding window algorithm may compare the fingerprint datasequence 2000 “A-B-_-D” to the other fingerprint data sequence “A-B-C-D”and include “C” in the fingerprint data sequence 2000 “A-B-_-D.” As aresult of the sliding window algorithm, there may be four matchingsequential fingerprint data.

The match 2002 exists in a column of table 2050 of FIG. 20. According toone embodiment, the match 2002 may be a condition in which thefingerprint data sequence 2000 sufficiently corresponds to the otherfingerprint data sequence. For example, the match 2002 in FIG. 20 may bedeclared when three sequential fingerprint data match.

The content identification server 1006 may be configured toautomatically determine the identification 1304 of the media data 1004in a manner such that the content identification server 1006 isconfigured to initiate a number of comparisons between the fingerprintdata 1202 and the other fingerprint data 1906, 2302, 2306, 2602. Thenumber of comparisons may be separated by a predetermined time interval.The content identification server 1006 may process the fingerprint data1202 prior to processing the other fingerprint data 1906, 2302, 2306,2602. Alternatively, the content identification server 1006 may processthe other fingerprint data 1906, 2302, 2306, 2602 prior to processingthe fingerprint data 1202. Yet another alternative may entail thecontent identification server 1006 processing the fingerprint data 1202and the other fingerprint data 1906, 2302, 2306, 2602 simultaneously.Thus, the number of comparisons may be initiated until a matchingfingerprint data sequence is found.

For example, in FIG. 20, the other fingerprint data sequence“751-242-369-520-818” already exists in the fingerprint database 1900when the content identification server 1006 processes the fingerprintdata sequence 2000 “751-242-369-520-818.” Thus, the contentidentification server 1006 immediately compares the fingerprint datasequence 2000 “751-242-369-520-818” to the other fingerprint datasequence “751-242-369-520-818.” However, the content identificationserver 1006 processes the fingerprint data sequence 2000“314-275-860-926-437” prior to the processing of the matchingfingerprint data sequence. Thus, the content identification server 1006initiates four comparisons until the match 2002 is declared when thepredetermined number of three sequential fingerprint data of“314-275-860” is found.

FIG. 21 is a table 2150 depicting a determination of the recurringsequence 2102, according to one embodiment. FIG. 21 shows the channel2100, the fingerprint data sequence 2000, the recurring sequence 2102,the table 2150, and the fingerprint database 1900.

The channel 2100 exists in a column of the table 2150 of FIG. 21.According to one embodiment, the channel 2100 may be an informationcommunication pathway. For example, the channel 2100 may correspond to aradio broadcasting frequency, a television broadcasting frequency,and/or an Internet media channel.

The recurring sequence 2102 exists in a column of the table 2150 of FIG.21. The content identification server 1006 may be configured todetermine that a portion of the fingerprint data sequence 2000 and/or ofthe other fingerprint data sequence is a recurring sequence 2102 whenthe portion is detected a predetermined number of times across aplurality of channels 2100 and/or at a plurality of different times.Additionally, the content identification server 1006 may be configuredto update the fingerprint database 1900 with the recurring sequence2102. The content identification server 1006 may also be configured toapply the algorithm comprising the sliding window algorithm to accountfor the number of missing fingerprint data in the recurring sequence2102.

Further, the content identification server 1006 and/or the captureserver 1008A, 1008B may be configured to assign a unique identifier tothe recurring sequence 2102. Still further, the content identificationserver 1006 and/or the capture server 1008A, 1008B may be configured toadd the unique identifier of the recurring sequence 2102 to a recurringsequence metadata database along with a recurring sequence metadata. Thecontent identification server 1006 and/or the capture server 1008A,1008B may be configured to generate the recurring sequence metadata. Therecurring sequence metadata may be a machine-readable informationdescribing the recurring sequence 2102. The recurring sequence metadatamay comprise the identifying metadata 1602, the descriptive metadata1206, and/or the other descriptive metadata 2308.

FIG. 22 is a block diagram of a system of determining the identification1304 of the media data 1004 involving the descriptive metadata 1206 andthe other watermark data 2200, according to one embodiment. FIG. 22shows the networked device 102, the content identification server 1006,the capture server 1008A, the media transmission node 1010A, thedescriptive metadata 1206, the identification 1304, the other tuner1902, the watermark database 1700, and the other watermark data 2200.

FIG. 22 illustrates the networked device 102 communicating thedescriptive metadata 1206 identifying the channel 2100 of the networkeddevice 102 to the content identification server 1006. The capture server1008A at the media transmission node 1010A monitors the channel 2100through the other tuner 1902 and communicates the other watermark data2200 to the content identification server 1006. The contentidentification server 1006 then compares the other watermark data 2200to the known watermark data in the watermark database 1700 andcommunicates the identification of the known watermark data to thenetworked device 102.

However, the CID data 1200, 1300 and/or the other CID data 1302, 1306,1402, 1404 may be subject to a number of systematic error sources. Forexample, the fingerprint data 1202 may not sufficiently correspond tothe other fingerprint data 1906, 2302, 2306, 2602 to declare the match2002 due to the number of systematic error sources. The number ofsystematic error sources may comprise a pseudostatic error and/or arandom error. The pseudostatic error may be a number of changes appliedto the media data 1004 in a media data pipeline (e.g., an audiopipeline, a video pipeline) and/or arriving to the media data pipelinethat is unlikely to change unless the user changes a number of settingsand/or a number of media data sources (e.g., an audio source, a videosource). The random error may be a random transmission noise (e.g., acompression noise, a blocking artifact, a corrupted frame). The randomerror may be addressed by a robust mechanism for computing the CID data1200, 1300 and/or the other CID data 1302, 1306, 1402, 1404 (e.g., thesliding window algorithm, an adaptive sampling algorithm).

The pseudostatic error may comprise a user setting (e.g., a brightnessmodification, a contrast modification, a hue modification, an othercolor space modification, a display scaling modification, and/or anaspect ratio modification). The user setting may be addressed bycapturing the media data 1004 prior to an application of the usersetting (e.g., at the frame buffer). However, capturing the media data1004 prior to the application of the user setting may not be possiblewhen the user setting is applied before the media data 1004 reaches theCID service 1000, 1002. For example, the display scaling modificationmay be applied in a set-top box prior to a transmission of the mediadata 1004 to the CID service 1002 of the networked device 102.

The pseudostatic error may also comprise an aspect ratio transformation(e.g., a black bar, a display stretching, a display scaling, and/or adisplay cropping). For example, the aspect ratio transformation mayresult in the fingerprint data 1202 of the networked device 102 thatinsufficiently corresponds to the other fingerprint data 1906 of thecapture server 1008A, 1008B. The aspect ratio transformation may beaddressed by a reverse transformation (e.g., an adjustment to the mediadata 1004 that conforms the media data 1004 to the other media data1904) in the networked device 102 and/or the client device 100 thatrestores the media data 1004 to a state in which the media data 1004existed prior to the aspect ratio transformation. The display croppingmay also be addressed by the adaptive sampling algorithm that focuses ona dynamic region of pixel change. Thus, the adaptive sampling algorithmmay ignore an edge region of a display.

The adaptive sampling algorithm may sample a number of different regionsof the display to increase a probability of selecting a region with ahigh temporal activity. A number of regions of interest may be sampledin a single frame buffer to increase a generation rate of a uniquefingerprint data as compared to the generation rate when a single regionis sampled in the single frame buffer. To ensure that the fingerprintdata 1202 matches the other fingerprint data 1906, the adaptive samplingalgorithm may be synchronized between the capture server 1008A, 1008Band the networked device 102 and/or the client device 100.

The display scaling may also be addressed by sampling at a variable rateacross a number of frame data in a number of different resolutions. Forexample, the fingerprint data 1202 generated by sampling every thirdpixel in a 300×300 resolution may match the fingerprint data 1202generated by sampling every second pixel in a 200×200 resolution.

The display scaling may be performed by an external device (e.g., aset-top box, a game console) to a display device (e.g., a television) inwhich the CID service exists. Thus, the CID service 1000, 1002 may beunaware of the display scaling. The reverse transformation may bealgorithmically applied to calibrate the fingerprint data 1202 with theother fingerprint data 1906.

The reverse transformation may comprise a slow perturbation to a subset(e.g., one, some, and/or all) of the number of regions of interest afterthe identification 1304 is determined. The display scaling may affect acentral region of the display less than the edge region of the display.Thus, the fingerprint data 1202 of the central region may match theother fingerprint data 1906, and the identification 1304 of the mediadata 1004 may be determined. A percentage of display scaling correctionmay then be applied to the subset of the number of regions of interest.A match rate may be determined by measuring a percentage of thefingerprint data 1202 that matches the other fingerprint data 1906associated with the identification 1304 of the media data 1004. Thedisplay scaling correction may then be adjusted in a manner such thatthe match rate is maximized. To ensure a sufficient number of samples toadequately measure the match rate, a sufficient number of fingerprintdata may be gathered such that a change in the confidence score is lessthan an estimated change in the match rate. Thus, a large change in theestimated change may require a smaller number of samples to determinewhether the display scaling correction maximizes the match rate. Theslow perturbation may constantly seek to maximize the match rate.

If the match rate is sufficiently greater than zero before theidentification 1304 is determined, the slow perturbation may still beapplied. However, if the match rate is zero and/or nearly zero beforethe identification 1304 is determined, the display scaling correctionmay be slowly oscillated across a range for a subset of the number ofregions of interest until a number of matches 2002 occur. Then, the slowperturbation may be applied.

Further, the display scaling may be addressed by a forwardtransformation (e.g., an adjustment to the other media data 1904 thatconforms the other media data 1904 to the media data 1004) thatcalibrates the other fingerprint data 1906 with the fingerprint data1202. The forward transformation may be applied to a subset of a numberof regions captured by the capture server 1008A, 1008B. A forwardtransformed fingerprint data may be added to the fingerprint database1900 and marked according to an amount of the display scaling correctionapplied. The forward transformation may be applied in a manner such thata total number of fingerprints in the fingerprint database 1900 is notappreciably increased. The capture server 1008A, 1008B may periodically(e.g., at a time interval that is significantly larger than a samplingtime interval for generating a number of individual fingerprint data)generate a number of additional fingerprints for the subset of thenumber of regions subjected to a number of amounts of the displayscaling correction. If the display scaling correction is insufficient tochange a particular fingerprint from an uncorrected value, then theparticular fingerprint may not be added to the fingerprint database1900.

When the fingerprint data 1202 matches the forward transformedfingerprint data, the slow perturbation may be used by the CID service1002 to refine the display scaling correction. If a plurality of thefingerprint data 1202 match a plurality of the forward transformedfingerprint data, the CID service 1002 may employ the slow perturbationbased on an average of the number of amounts of the display scalingcorrection.

Further, the pseudostatic error may comprise a color space change and/ora pixel format change. The CID service 1002 may normalize a videoportion of the media data 1004 to a single color space and/or a singlepixel format. The color space change and the pixel format change may beaddressed by using a hybrid transformation (e.g., a combination of anumber of forward transformations and a number of reversetransformations).

The hybrid transformation may be used to address the pseudostatic error.The hybrid transformation may employ the reverse transformation tonormalize the number of regions of the media data 1004 captured from theframe buffer to conform with the other media data 1904. The hybridtransformation may employ the forward transformation to reproduce anormalization error. The normalization error may be a loss of a portionof the media data 1004 as a result of the reverse transformation. Thehybrid transformation may minimize a number of problems introduced byusing the forward transformation and/or the reverse transformation. Forexample, the forward transformation may require a cooperative devicemanufacturer and/or a combinatoric explosion in the number offingerprints to store. The reverse transformation may be lossy, mayincrease a processor utilization, may decrease the match rate, mayresult in a slower identification time, etc.

An input source (e.g., a DVD player, a game console, a cable set-topbox, a satellite set-top box) may exhibit a number of different types ofthe pseudostatic error and/or a number of varying degrees of thepseudostatic error. Thus, the networked device 102 and/or the captureserver 1008A, 1008B may generate and/or maintain a profile of thepseudostatic error associated with the input source. The profile may beassociated with a particular input (e.g., HDMI 1) used by the inputsource. The networked device 102 and/or the capture server 1008A, 1008Bmay notify the CID service 1002 and/or the other CID service 1104, 1110of the particular input being used. The CID service 1002 and/or theother CID service 1104, 1110 may then reference the profile and adjustaccordingly.

FIG. 23 is a block diagram of the content identification server 1006gathering the CID data 1200 and a plurality of other CID data 1402,1404, according to one embodiment. FIG. 23 shows the networked device102, the content identification server 1006, the other electronicprogram guide 1100, the fingerprint data 1202, the identifyinginformation 1208, the plurality of other networked devices 1400A, 1400B,the fingerprint database 1900, the tuner 2300, a plurality of otherfingerprint data 2302, 2306, the other watermark data 2304, and an otherdescriptive metadata 2308.

FIG. 23 illustrates the CID service 1002 of the networked device 102retrieving the channel number of the networked device 102 from the tuner2300 to generate the identifying information 1208. The networked device102 may communicate the CID data 1200 comprising the fingerprint data1202 of the media data 1004 along with the identifying information 1208of the media data 1004 to the content identification server 1006. Thecontent identification server 1006 may then process the CID data 1200and access the other electronic program guide 1100 to retrieve thecontent identifying information associated with the channel number. Thecontent identification server 1006 may also associate the contentidentifying information with the provisional identification 2400 of themedia data 1004.

The other networked device 1400A may comprise the number of other clientdevices 1102. The other CID service 1104 may communicate the other CIDdata 1402 comprising the other fingerprint data 2302 of the number ofother media data 1108 along with the number of other watermark data 2304of the number of other media data 1108 to the content identificationserver 1006. The content identification server 1006 may process theother CID data 1402 and compare the other watermark data 2304 to theknown watermark data in the watermark database 1700. If the otherwatermark data 2304 is identical to the known watermark data, thecontent identification server 1006 may associate the identification ofthe known watermark data with the number of other provisionalidentifications 2400 of the other media data 1108.

The other networked device 1400B may comprise the number of othernetworked media devices 1106B. The other CID service 1110 maycommunicate the other CID data 1404 comprising the other fingerprintdata 2306 of the number of other media data 1112 along with the numberof other descriptive metadata 2308 of the number of other media data1112 to the content identification server 1006. The number of otherdescriptive metadata 2308 may comprise the call sign of the channelnumber of the networked device. The content identification server 1006may process the other CID data 1404 and access the other electronicprogram guide 1100 to retrieve a number of content identifyinginformation associated with the call sign. The content identificationserver 1006 may also associate the number of content identifyinginformation with the number of other provisional identifications 2400 ofthe number of other media data 1112.

The content identification server 1006 may process the CID data 1200 andthe plurality of other CID data 1402, 1404. The content identificationserver 1006 may store the fingerprint data 1202 and/or the plurality ofother fingerprint data 2302, 2306 in the fingerprint database 1900. Thecontent identification server 1006 may compare the fingerprint data 1202and/or the plurality of other fingerprint data 2302, 2306 to thefingerprint database 1900. The content identification server 1006 maycompare the fingerprint data 1202 to the plurality of other fingerprintdata 2302, 2306. If the match 2002 exists among the fingerprint data1202 and the plurality of other fingerprint data 2302, 2306, the contentidentification server 1006 may aggregate the provisional identification2400 and the number of other provisional identifications 2400.

The content identification server 1006 may also be configured todetermine the identification 1304 of the media data 1004 through thecrowd sourcing. The crowd sourcing may be based on the consensus of theprovisional identification 2400 and the number of other provisionalidentifications 2400. The consensus may be algorithmically determinedbased on the number of criteria comprising the predetermined percentageof the predetermined number of samples, the reliability of theprovisional identification 2400, and/or the other factor affecting theconfidence score of the consensus. For example, the number of otherwatermark data 2200, 2304 may be given more weight than the identifyinginformation 1208 retrieved from the other electronic program guide 1100.

The content identification server 1006 may be configured to update thefingerprint database 1900 with the identification 1304 of the media data1004 determined using the crowd sourcing. For example, the fingerprintdatabase 1900 may be updated with the identification 1304 of the mediadata 1004 determined using the crowd sourcing when the crowd sourcing isused as the alternative to the capture server 1008A, 1008B or when theconsensus has a higher confidence score than the identification 1304 ofthe media data 1004 determined using the capture server 1008A, 1008B.The content identification server 1006 may then use the identification1304 of the media data 1004 determined using the crowd sourcing toautomatically determine the identification 1304 of the fingerprint data1202 and/or the other fingerprint data 1906, 2302, 2306, 2602 that isunaccompanied by the provisional identification 2400 and/or the otherprovisional identification 2400.

FIG. 24 is a table view of the content identification server 1006gathering the provisional identification 2400 of the media data 1004 andthe number of other provisional identifications 2400 of the number ofother media data 1108, 1112, according to one embodiment. FIG. 24 showsthe fingerprint data sequence 2000, the fingerprint database 1900, theprovisional identification 2400, and the table 2450.

The provisional identification 2400 exists as a column of the table 2450of FIG. 24. According to one embodiment, the provisional identification2400 and/or the number of other provisional identifications 2400 maycomprise the watermark data 1204, the number of other watermark data2200, 2304, the descriptive metadata 1206, the number of otherdescriptive metadata 2308, the identifying information 1208, and/or thenumber of other identifying information 1800. The provisionalidentification 2400 may identify the content of the media data 1004and/or the number of other media data 1108, 1112 in a manner such thatthe provisional identification 2400 is less authoritative than theidentification 1304 of the media data 1004 and/or of the number of othermedia data 1108, 1112, 1904. The provisional identification 2400 mayalso identify the channel 2100 of the networked device 102 and/or thenumber of other networked media devices 1106A, 1106B.

FIG. 25 is a table view of the content identification server 1006determining the identification 1304 of the media data 1004 based on theconsensus, according to one embodiment. FIG. 25 shows the identification1304, the fingerprint data sequence 2000, the fingerprint database 1900,the provisional identification 2400, and the table 2550.

The content identification server 1006 may aggregate the provisionalidentification 2400 of the fingerprint data 1202 with the number ofother provisional identifications 2400 associated with the plurality ofother fingerprint data 1906, 2302, 2306, 2602 that match the fingerprintdata 1202. The content identification server 1006 may also be configuredto determine the identification 1304 based on a majority of theprovisional identification 2400 and/or the number of other provisionalidentifications 2400. The content identification server 1006 may requireat least two other provisional identifications 2400 in addition to theprovisional identification 2400 in order to form the consensus. Theidentification 1304 may be determined in a manner such that theprovisional identification 2400 and/or the number of other provisionalidentifications 2400 are overridden by the consensus.

FIG. 26 is a block diagram of the content identification server 1006using the identification 1304 of the media data 1004 to identify theother fingerprint data 2602, according to one embodiment. FIG. 26 showsthe content identification server 1006, the other electronic programguide 1100, the identification 1304, the other networked device 2600,the fingerprint database 1900, and the other fingerprint data 2602.

The content identification server 1006 may be configured to update thefingerprint database 1900 with the identification 1304 formulated by theconsensus. Subsequently, the identification 1304 may be used to identifythe other fingerprint data 2602 unaccompanied by the provisionalidentification 2400 and/or the number of other provisionalidentifications 2400.

For example, Jane may visit an auction website on her smartphone whileshe watches her television. When an advertisement airs on thetelevision, the auction website displays matching items that are beingauctioned. No installation, configuration, login, and/or userregistration was required.

Although the present embodiments have been described with reference to aspecific example embodiment, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the various embodiments.For example, the various devices and modules described herein may beenabled and operated using hardware circuitry (e.g., CMOS based logiccircuitry), firmware, software or any combination of hardware, firmware,and software (e.g., embodied in a machine readable medium). For example,the various electrical structures and methods may be embodied usingtransistors, logic gates, and electrical circuits (e.g., applicationspecific integrated (ASIC) circuitry and/or Digital Signal Processor(DSP) circuitry).

In addition, it will be appreciated that the various operations,processes, and methods disclosed herein may be embodied in amachine-readable medium and/or a machine accessible medium compatiblewith a data processing system (e.g., a computer device). Accordingly,the specification and drawings are to be regarded in an illustrative inrather than a restrictive sense.

What is claimed is:
 1. A system comprising: a networked devicegenerating a fingerprint of media data rendered thereon, the networkeddevice having an identification data associated therewith; a first setof computer implemented instructions executing to generate contentidentification data from the fingerprint; and a second set of computerimplemented instructions executing to: associate the contentidentification data with the identification data of the networkeddevice; and associate the identification data of the networked devicewith an identification data of a user of the networked device involvedin an interaction with the networked device, wherein the interaction isassociated with the rendering of the media data on the networked device.2. The system of claim 1: wherein the networked device is one of: atelevision, a data processing device and a set-top box.
 3. The system ofclaim 1: wherein the identification data of the networked devicecomprises a public Internet Protocol (IP) address.
 4. The system ofclaim 1, wherein the identification data of the networked device and theidentification data of the user are the same.
 5. The system of claim 1:wherein the networked device automatically generates the fingerprint ata chipset level based on access to at least one of: a video buffer, avideo pipeline, an audio buffer and an audio pipeline associatedtherewith.
 6. The system of claim 5: wherein the networked devicefurther corrects for errors in data stored in the at least one of: thevideo buffer, the video pipeline, the audio buffer and the audiopipeline before generating the fingerprint.
 7. The system of claim 1:wherein the first set of computer implemented instructions furtherexecutes to generate the content identification data based on thefingerprint in conjunction with other data.
 8. The system of claim 1,wherein the identification data of the networked device comprises dataother than a public IP address.
 9. A method comprising: generating,through a networked device, a fingerprint of media data rendered throughthe networked device; generating content identification data from thefingerprint; associating the content identification data with anidentification data of the networked device; and associating theidentification data of the networked device with an identification dataof a user of the networked device involved in an interaction with thenetworked device, wherein the interaction is associated with therendering of the media data on the networked device.
 10. The method ofclaim 9, comprising the networked device being one of: a television, adata processing device and a set-top box.
 11. The method of claim 9,wherein the identification data of the networked device comprises apublic IP address.
 12. The method of claim 9, comprising theidentification data of the networked device and the identification dataof the user being the same.
 13. The method of claim 9, comprisingautomatically generating, through the networked device, the fingerprintat a chipset level based on access to at least one of: a video buffer, avideo pipeline, an audio buffer and an audio pipeline associated withthe networked device.
 14. The method of claim 13, further comprisingcorrecting, through the networked device, for errors in data stored inthe at least one of: the video buffer, the video pipeline, the audiobuffer and the audio pipeline before generating the fingerprint.
 15. Themethod of claim 9, further comprising: generating the contentidentification data based on the fingerprint in conjunction with otherdata.
 16. A non-transitory medium, readable through a data processingdevice and comprising instructions embodied therein that are executablethrough the data processing device, comprising: instructions togenerate, through a networked device, a fingerprint of media datarendered through the networked device; instructions to generate contentidentification data from the fingerprint; instructions to associate thecontent identification data with an identification data of the networkeddevice; and instructions to associate the identification data of thenetworked device with an identification data of a user of the networkeddevice involved in an interaction with the networked device, wherein theinteraction is associated with the rendering of the media data on thenetworked device.
 17. The non-transitory medium of claim 16, comprisingthe networked device being one of: a television, a data processingdevice and a set-top box.
 18. The non-transitory medium of claim 16,wherein the identification data of the networked device comprises apublic IP address.
 19. The non-transitory medium of claim 16, comprisingthe identification data of the networked device and the identificationdata of the user being the same.
 20. The non-transitory medium of claim16, comprising instructions to automatically generate, through thenetworked device, the fingerprint at a chipset level based on access toat least one of: a video buffer, a video pipeline, an audio buffer andan audio pipeline associated with the networked device.